4

我正在尝试编写一个具有更多节点和属性的xml,名称与此相同:

<ParameterSet>
    <ParameterSetType Name="AAAA">
    </ParameterSetType>
    <ParameterSetType Name="BBBB"> 
    </ParameterSetType>
    <ParameterSetType Name="CCCC">
    </ParameterSetType>
</ParameterSet>

我尝试使用pt.put()仅获取最后一个元素

<ParameterSet>
    <ParameterSetType Name="CCCC">
    </ParameterSetType>
</ParameterSet>

pt.add()获得一个具有所有属性的节点

<ParameterSet>
    <ParameterSetType Name="AAAA" Name="BBBB" Name="CCCC">
    </ParameterSetType>
</ParameterSet>

做我想做的事的正确方法是什么?

4

1 回答 1

4

根据属性树文档pt.add()绝对是正确使用的功能:

template<typename Type>    self_type & add(const path_type & path, const Type & value); 

如果路径标识的节点不存在,则创建它,包括其所有缺失的父节点。如果节点已存在,则添加具有相同键的兄弟节点。将新创建的节点的值设置为给定的参数,使用提供的翻译器进行翻译。

这次再次参考本教程中的文档,给出了以下将字符串从 std::list 添加到属性树的示例:

BOOST_FOREACH(const std::string &name, m_modules)
      pt.add("debug.modules.module", name);

结果如下:

<debug>
   <modules>
        <module>Finance</module>
        <module>Admin</module>
        <module>HR</module>
    </modules>
</debug>
于 2013-04-18T15:24:24.223 回答