C++ 使用boost属性树创建mullti节xml
尝试在属性树内创建多节xml,如下所示:C++ 使用boost属性树创建mullti节xml,c++,xml,boost,properties,tree,C++,Xml,Boost,Properties,Tree,尝试在属性树内创建多节xml,如下所示: <main> <SECTION id="1"> <parameter> <name>Foo1</name> <name>Foo2</name> </parameter> </SECTION> <SECTION id="2">
<main>
<SECTION id="1">
<parameter>
<name>Foo1</name>
<name>Foo2</name>
</parameter>
</SECTION>
<SECTION id="2">
<parameter>
<name>Bar1</name>
<name>Bar2</name>
</parameter>
</SECTION>
</main>"
Foo1
食物2
Bar1
Bar2
"
使用propertytree add and put进行测试,但最后xml看起来脏兮兮的:
<main>
<SECTION id="1" id="2">
<parameter>
<name>Foo1</name>
<name>Foo2</name>
<name>Bar1</name>
<name>Bar2</name>
</parameter>
</SECTION>
</main>
Foo1
食物2
Bar1
Bar2
我用来获取结果的代码:
static auto pretty = boost::property_tree::xml_writer_make_settings<std::string>(' ', 4);
int main(int argc, char **argv)
{
//QCoreApplication a(argc, argv);
ptree root;
root.add("main.SECTION.<xmlattr>.id", 1);
root.add("main.SECTION.parameter.name", "Foo1");
root.add("main.SECTION.parameter.name", "Foo2");
root.add("main.SECTION.<xmlattr>.id", 2);
root.add("main.SECTION.parameter.name", "Bar1");
root.add("main.SECTION.parameter.name", "Bar2");
write_xml(std::cout, root, pretty);
return 0; //a.exec();
}
static auto pretty=boost::property\u tree::xml\u writer\u make\u设置(“”,4);
int main(int argc,字符**argv)
{
//qcorea应用程序(argc、argv);
树根;
root.add(“main.SECTION..id”,1);
root.add(“main.SECTION.parameter.name”,“Foo1”);
root.add(“main.SECTION.parameter.name”,“Foo2”);
root.add(“main.SECTION..id”,2);
root.add(“main.SECTION.parameter.name”,“Bar1”);
root.add(“main.SECTION.parameter.name”,“Bar2”);
编写xml(std::cout、root、pretty);
返回0;//a.exec();
}
是否有可能得到主题开头所示的结果?
如何使用新节点将新节点添加到此树
谢谢#包括
#包括
#包括
static auto pretty=boost::property_tree::xml_writer_make_设置(“”,4);
使用boost::property_tree::ptree;
int main()
{
树根;
ptree§ion1=root.add_child(“main.SECTION”,ptree());
第1节添加(“.id”,1);
第1节添加(“参数名称”、“Foo1”);
第1节添加(“参数名称”、“Foo2”);
ptree§ion2=root.add_child(“main.SECTION”,ptree());
第2节添加(“.id”,2);
第2节添加(“参数名称”、“Bar1”);
第2节添加(“参数名称”、“Bar2”);
编写xml(std::cout、root、pretty);
返回0;
}
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
static auto pretty = boost::property_tree::xml_writer_make_settings<std::string>(' ', 4);
using boost::property_tree::ptree;
int main()
{
ptree root;
ptree& section1=root.add_child("main.SECTION", ptree());
section1.add("<xmlattr>.id",1);
section1.add("parameter.name", "Foo1");
section1.add("parameter.name", "Foo2");
ptree& section2=root.add_child("main.SECTION", ptree());
section2.add("<xmlattr>.id",2);
section2.add("parameter.name", "Bar1");
section2.add("parameter.name", "Bar2");
write_xml(std::cout, root, pretty);
return 0;
}