gpt4 book ai didi

c++ - 将具有 xml 属性的子树添加到 boost 属性树

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:19 25 4
gpt4 key购买 nike

我正在使用 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">
...

如何指定属性? boost 文档对此非常不清楚。

最佳答案

你应该使用 <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>

关于c++ - 将具有 xml 属性的子树添加到 boost 属性树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com