如何使用boost property_tree创建xml

时间:2013-03-14 15:11:26

标签: c++ boost xml-parsing

我需要为我的输出创建xml。 我有一个索引名称列表。 我想以一种格式在xml文件中填充它。

<response>
      <indexes>
          <index>abc</index>
          <index>xyz</index>
          <index>pqr</index>
      </indexes>
</response>

我的矢量index_list中有列表。

任何人都可以帮助我。

我已经尝试了一些代码。

boost::property_tree::ptree tree;
stringstream output;
for (std::vector<string>::const_iterator it = index_list.begin();
        it != index_list.end(); it++) {
    std::cout << *it << "\n";
    tree.put("response.indexes.index", *it);
}
if (format == "xml") {
    write_xml(output, tree);
} else {
    write_json(output, tree);
}

当我运行上面的代码时。我只在列表中获得姓氏。

<response>
  <indexes>
      <index>pqr</index>
  </indexes>
</response>

1 个答案:

答案 0 :(得分:1)

put方法将删除任何现有值,请参阅之前与之相关的问题here

您必须为列表中的每个条目使用不同的键,以避免数据丢失。

Boost docs

  

调用put会在指定的路径中插入一个新值,以便进行调用   指定相同的路径将检索它。