我使用RapidXML修改现有的XML文档。这是我的代码:
file<> xmlFile( launchFullPath.c_str() );
xml_document<> doc;
doc.parse<0>(xmlFile.data());
// create a node called basedir
xml_node<> *basedir = doc.allocate_node(node_element, "basedir");
// append basedir to the launch
xml_node<> *node = doc.first_node("launch");
node->append_node(basedir);
// append attribute to basedir
xml_attribute<> *attr = doc.allocate_attribute("path", SUMOfullDirectory.c_str());
basedir->append_attribute(attr);
最终,XML的内容将是:
<launch>
<copy file="hello.net.xml"/>
<copy file="hello.rou.xml"/>
<copy file="hello.loopDetector.xml"/>
<copy file="hello.obstacles.xml"/>
<copy file="hello.sumo.cfg" type="config"/>
<basedir path="/home/mani/Desktop/VENTOS/sumo/Incident_Detection"/>
<seed value="0"/>
</launch>
最后,我想将XML文档的内容转换为字符串。如您所见(从eclipse IDE中的调试模式),XML文件的内容未正确存储到 st 变量中。我也使用了RapidXML :: print方法,结果是一样的。这可能有什么问题?