如何手动创建带有XML属性的boost ptree
How to manually create a boost ptree with XML attributes?
我一直在使用boost库来解析XML文件,我必须手动创建一个ptree。我需要向ptree添加一个XML属性。这是boost文档所建议的:
ptree pt;
pt.push_back(ptree::value_type("pi", ptree("3.14159")));
添加了一个带有内容的元素,但是我还需要为元素添加一个属性。
上面的代码产生:
<pi>3.14</pi>
我需要添加这样的东西:
<pi id="pi_0">3.14</pi>
要添加属性id="pi_0"
,我需要更改什么?
您使用"fake"节点<xmlattr>
: http://www.boost.org/doc/libs/1_46_1/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.xml_parser
Live On Coliru
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <iostream>
using boost::property_tree::ptree;
int main() {
ptree pt;
pt.push_back(ptree::value_type("pi", ptree("3.14159")));
pt.put("pi.<xmlattr>.id", "pi_0");
write_xml(std::cout, pt);
}
打印
<?xml version="1.0" encoding="utf-8"?>
<pi id="pi_0">3.14159</pi>
相关文章:
- boost::spirit指针属性是用nullptr初始化的吗?
- Boost.Python 列出了所有公开的类和属性
- 如何使用 boost 属性树来解析 boost 中 json 字符串中的数组中的元素?
- boost::log 设置"Channel"通道记录器中的属性
- 如何在Boost Graph库中的Grid_graph的边缘添加自定义属性
- boost :: Spirit :: Karma语法:逗号从结构上划定了带有选件属性的输出
- 如何将Boost属性树的子树序列化为XML
- 如何使用Boost C 属性映射从配置文件中提取值
- 使用自定义的边缘属性 boost::adjacency_list 遍历边缘
- Boost:列出GraphMl中指定的顶点和边缘属性
- boost :: spirit :: x3中的connathesting std ::对属性属性
- 使用Boost ::几何多边形布尔/与线段属性的交叉点
- boost :: Spirit属性分配:struct is_nullary:基本类型无法成为结构或类型
- 如何使用boost::graph dijkstra的算法,如果顶点属性是指针?
- Boost::p tree - 访问列表中包含的属性树节点
- 如何通过 boost::log 打印到具有不同属性的不同日志?
- boost::serialization-序列化从泛型属性/功能容器派生的类
- boost属性树解析json后无法检索记录
- 为什么 boost::qi 规则的属性必须用括号声明?
- 创建一个具有调用策略的属性- boost::python