2011-10-21 13 views
0

私はlibxml2 SAXでいくつかのファイルをマージしようとしています。私が何をしたいかlibxml2で効果的にファイルをマージするSAX API

<xml> 
    <section1> 
     <data /> 
     <data /> 
    </section1> 
    <section2> 
     <data /> 
     <data /> 
    </section2> 
    <section3> 
     <data /> 
     <data /> 
    </section3> 
</xml> 

は異なるファイル内の同じセクションからのデータが適切なセクションに一つの大きなファイルに配置されるようにすることです:元のファイルは次のようになります。私がやったのは、最初のファイルsection1を読み込み、すぐにマージされたファイルsection1に書き込むことです。それから私は他のファイルと同じことをします。その後、私はセクション2に移ります。

私は、セクションを持つ回数だけすべてのファイルを読む必要があることを除いて、うまくいきます。私が疑問に思っていたのは、section1を経てfile1の読み込みを中断し、section1が他のすべてのファイルで読み込まれた後に読み続けることができるかどうかということです。

答えて

0

私はこれが可能ではないと思います。元のファイルのコールバックの任意の時間に2次解析を開始することはできますが、2番目の解析を完全に終了または中断することなく2次解析を停止することはできません。

xmlReaderインターフェイスを調べることを強くおすすめします。コールバックによって駆動されるわけではありません。xmlTextReaderReadを繰り返し送信してください。いつでも、読者間でスワップすることができます。あなたは間違いなくあなたが探している行動を得ることができるでしょう。

例は、http://xmlsoft.org/examples/index.html#xmlReader

関連する問題