2017-01-07 27 views
0

私のような特定のノード代わるC/C++方法書くことTinyXML2(https://github.com/leethomason/tinyxml2)を使用して苦労しています:結果があるように... TinyXML2:Replace Node機能?


    <replacement>Bar</replacement>
: 別のノードと...

    <doc> 
     <replace>Foo</replace> 
    </doc>
 
    <doc>
     <replacement>Bar</replacement> 
    </doc>
しかし、交換するノードが複数回表示されることがあり、2番目のノードを別のものに交換する場合に備えて注文を保存したいと考えています。

これは実際は単純明快ですが、私は無限の再帰で失敗しています。

これを行う方法の例がありますか?どんな助けでも大歓迎です。

答えて

0

サンプルコードはありますか?

tinyxml2::XMLNode::InsertAfterChild<replacement>を挿入し、続いて<replace>を削除してみることもできます。

この回答にも関連すると思われる:Updating Data in tiny Xml element

+0

私はそれを試しましたが、奇妙なことに、ノードをそこに追加して削除を両方削除するとします。 : -/ –

+0

コードをgithubの要点に入れてください。私はこれであなたを助けることができるはずです。 –

+0

私は最小のテストケースと要点を作成しました。 (これまでにやったことがないので、しばらく時間がかかりました:-)。こちらをご覧ください:https://gist.github.com/MortenMacFly/264e6ff0793584aca7953fba8b8a4f38 –

0

私はあなたが行くように置換を行うことビジターパターンを使用して、新しい文書にソースXMLをコピーお勧めします。インプレースを置換すると、チェーンが壊れたり、無限ループが発生する可能性が非常に高くなります。

ヴィスターパターンを使用してサブストレートを作成する例があります(要素の属性とテキストでは同じ原理ですが)hereです。下部にあるxcopy関数と関連コードを参照してください。

関連する問題