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),但我有字符串。
我想这是因为我试图将一棵树的一个节点插入另一棵树......只有为给定树分配的节点才能添加到该树......这很糟糕......
有没有一种方法可以让我以简单的方式做我需要的事情?
谢谢你。