2011-06-24 14 views
1

GTKアプリケーションでは、libxml2のxmlParseFile()を使用しています。ただし、その関数はローカルファイルのみを読み取ることができます。代わりに、GIOフレームワークを使用してリモートファイルも読み取ることができますか?libxml2を使ってGInputStream(GLibGIO/GVFS)からデータを解析する方法は?

最も簡単な方法は、ファイル全体をメモリに読み込むためにg_file_load_contents()のようなものを使用し、次にそれを解析するためにxmlParseMemory()を呼び出すことです。しかし、理想的にはデータを流す(メモリ内のデータ全体を保持しないようにする) "より良い"ソリューションを探しています。おそらくGInputStreamをlibxml2に接続しますか?

コード例を歓迎します。私はこれが一般的な使用例だと思いますので、ここで良い実装の網羅的なリストを収集することは有用かもしれません。

答えて

1

は、ファイルからチャンクでXMLデータチャンクを解析する方法についてlibxml2のウェブサイト上(コード例付き)の指示があります。あなたは、あなたがxmlParseChunk()にチャンクを養うためにg_input_stream_read()を使用することができGInputStreamを使用したい場合はhttp://xmlsoft.org/library.html#Invoking1

libxml2のドキュメントのサンプルプログラムと同じ方法で実行します。