在我的C++程序中,我想解析一小段XML,插入一些节点,然后提取新的XML(最好是一个std::string
).
RapidXml已被推荐给我,但我看不到如何将XML作为文本字符串检索回来.
(我可以遍历节点和属性并自己构建它,但肯定有一个我缺少的功能构建.)
谢谢.
虽然这个主题的文档很差,但我设法通过查看源代码获得了一些工作代码.虽然它缺少通常包含重要信息的xml标头.这是一个小例子程序,使用rapidxml执行您正在寻找的内容:
#include#include #include "rapidxml/rapidxml.hpp" #include "rapidxml/rapidxml_print.hpp" int main(int argc, char* argv[]) { char xml[] = "" " " " "; //Parse the original document rapidxml::xml_document<> doc; doc.parse<0>(xml); std::cout << "Name of my first node is: " << doc.first_node()->name() << "\n"; //Insert something rapidxml::xml_node<> *node = doc.allocate_node(rapidxml::node_element, "author", "John Doe"); doc.first_node()->append_node(node); std::stringstream ss; ss <<*doc.first_node(); std::string result_xml = ss.str(); std::cout <
2> 小智..:使用
rapidxml_print.hpp
实用程序头中找到)将XML节点内容打印到astringstream
.