C++ 使用boost属性树创建mullti节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">

尝试在属性树内创建多节xml,如下所示:

<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; 
}