std::string src = "<xml><node1>aaa</node1><node2>bbb</node2><node1>ccc</node1></xml>";
std::string src2 = "<nodex>xxx</nodex>";
Я хочу добавить узел в src2 внутри дерева в src, используя RapidXml. Я делаю это:
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), но у меня есть строки.
Я полагаю, это происходит потому, что я пытаюсь вставить узел дерева в другое дерево ... только узлы, выделенные для данного дерева, могут быть добавлены к этому дереву ... это отстой ...
Есть ли способ, которым я могу сделать то, что мне нужно, простым способом?
Спасибо.