2011-06-24 59 views
1

在GTK應用程序中,我使用libxml2中的xmlParseFile()。但是,該功能只能讀取本地文件。我怎樣才能讓它使用GIO框架,以便它可以讀取遠程文件?如何使用libxml2解析來自GInputStream(GLibGIO/GVFS)的數據?

最簡單的方法可能是使用類似g_file_load_contents()的內容將整個文件讀入內存,然後調用xmlParseMemory()來解析該文件。然而,我正在尋找一個「更好的」解決方案,理想的是對數據進行流式傳輸(以避免將整個數據保存在內存中);可能通過將GInputStream連接到libxml2?

歡迎使用代碼示例。我猜這是一個常見的用例,因此在這裏收集一個詳盡的實現列表可能會有用。

回答

1

有關於如何通過塊從文件中解析XML數據塊中的libxml2網站上的指令(代碼示例):http://xmlsoft.org/library.html#Invoking1

如果你想使用GInputStream那麼你可以使用g_input_stream_read()來塊喂xmlParseChunk()與libxml2文檔中的示例程序相同。