std::string src = "<xml><node1>aaa</node1><node2>bbb</node2><node1>ccc</node1></xml>";
std::string src2 = "<nodex>xxx</nodex>";
RapidXml を使用して、src2 のノードを src のツリー内に追加したい:
xml_document<> xmldoc;
xml_document<> xmlseg;
std::vector<char> s(src.begin(), src.end());
std::vector<char> x(src2.begin(), src2.end());
xmldoc.parse<0>(&s[0]);
xmlseg.parse<0>(&x[0]);
xml_node<>* a = xmlseg.first_node(); /* Node to append */
xmldoc.first_node("xml")->append_node(a); /* Appending node a to the tree in src */
まあ、それは素晴らしいコンパイルですが、実行すると、この恐ろしいエラーが発生しました:
void rapidxml::xml_node::append_node(rapidxml::xml_node*) [with Ch = char]: アサーション `child && !child->parent() && child->type() != node_document' が失敗しました。中止しました
どうすればいいのかわからない。問題は単純です。ノードをツリー (xml) に追加する必要がありますが、文字列があります。
これは、ツリーのノードを別のツリーに挿入しようとしているために発生すると思います...特定のツリーに割り当てられたノードのみをそのツリーに追加できます...これはひどいです...
必要なことを簡単な方法で行う方法はありますか?
ありがとうございました。