Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何手动创建具有XML属性的boost ptree?_C++_Xml_Boost_Boost Propertytree - Fatal编程技术网

C++ 如何手动创建具有XML属性的boost ptree?

C++ 如何手动创建具有XML属性的boost ptree?,c++,xml,boost,boost-propertytree,C++,Xml,Boost,Boost Propertytree,我一直在使用boost库解析XML文件,我必须手动创建一个ptree。我需要向ptree添加一个XML属性。这是boost文档的建议: ptree pt; pt.push_back(ptree::value_type("pi", ptree("3.14159"))); 这将添加一个包含内容的元素,但我还需要向元素添加一个属性 上述代码生成: 3.14 我需要添加如下内容: 3.14 我需要更改什么,才能添加属性id=“pi_0”?使用“假”节点: #include <boost

我一直在使用boost库解析XML文件,我必须手动创建一个ptree。我需要向ptree添加一个XML属性。这是boost文档的建议:

ptree pt;
pt.push_back(ptree::value_type("pi", ptree("3.14159")));
这将添加一个包含内容的元素,但我还需要向元素添加一个属性

上述代码生成:

3.14
我需要添加如下内容:

3.14
我需要更改什么,才能添加属性
id=“pi_0”

使用“假”节点

#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);
}
#包括
#包括
#包括
使用boost::property_tree::ptree;
int main(){
ptree-pt;
pt.push_back(ptree::value_type(“pi”,ptree(“3.14159”));
pt.put(“pi..id”,“pi_0”);
编写xml(std::cout,pt);
}
印刷品

<?xml version="1.0" encoding="utf-8"?>
<pi id="pi_0">3.14159</pi>

3.14159
注意文档链接:)Boost文档通常很简洁,但很耐心。
#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>