rapidxml 节点加入另一个xml

void TestRapidXml()
{
    char* xmlContent = new char[1024];
    sprintf(xmlContent,"<root><head>aaa</head><body>bbb</body></root>");

    xml_document<> xmlDoc;
    xmlDoc.parse<0>(xmlContent);

    char* xmlContent2 = new char[1024];
    sprintf(xmlContent2,"<point x=\"1\" y =\"1\"/><point x=\"2\" y =\"2\"/>");
    xml_document<> xmlDoc2;
    xmlDoc2.parse<0>(xmlContent2);

    xml_node<>* root = xmlDoc.first_node();
    for(xml_node<>* node = xmlDoc2.first_node();node!=NULL;node=node->next_sibling())
    {
        // 注意:这里使用xmlDoc,是大的xml,不要使用xmlDoc2.
        root->append_node(xmlDoc.clone_node(node));
    }

    string xmlStr = "";
    rapidxml::print(std::back_inserter(xmlStr),xmlDoc,0); 
    
    delete []xmlContent;
    delete []xmlContent2;
}

 

posted on 2015-05-16 19:23  Andy Niu  阅读(388)  评论(0编辑  收藏  举报