2

RapidXML xml_document の完全なコピーを取得するにはどうすればよいですか?

clone_node 関数があります。to を使用して既存のドキュメントの完全なコピーを作成する方法

4

2 に答える 2

4

あなたがすでに推測したように、関数clone_nodeメソッドがあります。オンライン ヘルプから:

xml_node* clone_node(const xml_node< Ch > *source, xml_node< Ch > *result=0);

xml_node とその子ノードおよび属性の階層を複製します。ノードと属性は、このメモリ プールから割り当てられます。名前と値は複製されず、複製とソースの間で共有されます。結果ノードはオプションで 2 番目のパラメーターとして指定できます。この場合、その内容は複製されたソース ノードに置き換えられます。これは、ドキュメント全体を複製する場合に便利です。

FreshCodeによって提案されたアプローチは非常に単純ですが、「toString & parseBack」に不必要なオーバーヘッドが追加されるため、避けたい場合があります。

于 2012-10-18T12:50:50.040 に答える
1

よりクリーンなツリーベースのアプローチがあると確信していますが、次の方法で解決しました。ここで、str は別のドキュメントからの xml 出力です。

xml_document<> doc;
doc.parse<0>(doc.allocate_string(str));
于 2010-08-20T17:54:02.647 に答える