2009-07-24 18 views
1

は、私は私のプログラムを実行する上で、「文書の最後に余分なコンテンツ」を取得するので、それがルート/囲んでノードを持っていない、次のlibxml for C++:XMLツリーにルートノードを追加する方法は?

<siteinfo> 
... 
</siteinfo> 
<page> 
    <title>...</title> 
    <revision> 
    ... 
    <revision> 
</page> 

ようなXMLファイルを持っています。 libxmlを使って解析するためのファイルを開いたら、このルート/囲みノードを解析ツリーに簡単に追加する方法はありますか?

+0

XMLライターを変更することはできますか? XML準拠にする方が良いと思います。 –

答えて

3

あなたはソースXMLの構造を変更することができない場合は、より簡単な方法は次のように文字列を作成するには、次のようになります。そして、あなたは簡単にこの文字列を解析することができます

string xml = string("<root>") + file_contents + string("</root>"); 

。ちなみに、C++を使っているので、libxml ++を試してみてください。これはlibxml用のC++ラッパーで、とても良いです。

+0

ありがとうございます。したがって、ファイルではなく文字列を解析することは可能ですか?もしそうなら、あなたの答えはまさに私が必要とするものです:-) –

+0

libxml ++で可能ですので、明らかにベースライブラリであるlibxmlで可能であるはずです。 – Sahas

+0

ありがとう!私はlibxml ++を使っていると思った。どうやらない。私は非常に多くのパッケージをインストールしなければならなかった、私はトラックを失った。 libxml ++がはるかに簡単になるまでlibxml2に固執します;-)。再度、感謝します。 –

関連する問題