我正在使用boost::ptree
创建xml文件
ptree tree;
ptree & subtree = tree.add("sometag", "");
ptree & subsubtree = tree.add("someothertag", "");
...
write_xml(stfilename, declarationTree, std::locale(),
xml_writer_settings<std::string>(' ', 4));
这将创建以下XML文件
<sometag>
<someothertag>
...
</someothertag>
</sometag>
到目前为止一切顺利,但我需要将xml属性放入<sometag>
标记中。
而不是:
<sometag>
...
我想要这个:
<sometag someattribute="somevalue">
...
如何指定属性?增强文档对此非常不清楚。
答案 0 :(得分:0)
您应该使用<xmlattr>
特殊子节点命名空间:
#include <boost/property_tree/xml_parser.hpp>
#include <iostream>
int main() {
boost::property_tree::ptree tree;
tree.put("sometag.someothertag.<xmlattr>.someattribute", "somevalue");
write_xml(std::cout, tree,
boost::property_tree::xml_writer_settings<std::string>(' ', 4));
}
打印
<?xml version="1.0" encoding="utf-8"?>
<sometag>
<someothertag someattribute="somevalue"/>
</sometag>