问题标签 [boost-propertytree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3391 浏览

c++ - 来自(提升属性树)的信息格式参考


我正在寻找一种为我的应用程序编写复杂数据配置的方法。由于不同的原因,我真的不喜欢 xml 或 json 来完成这项工作。

但我发现了一种非常适合这项工作的格式,它在 boost 属性树库中实现,并被称为“INFO”格式( http://www.boost.org/doc/libs/1_46_1/doc/html/ boost_propertytree/parsers.html#boost_propertytree.parsers.info_parser )。


问题是我找不到正确的格式描述/参考,因为文本信息的名称相同的“信息”文件格式。
有人可以分享指向正确文档或至少更多示例的链接吗?

0 投票
1 回答
4763 浏览

json - boost::property_tree::json_parser::read_json & Twitter?

我尝试了非常快速的测试,看看我是否可以将我的 twitter 提要传送到 boost 的 JSON 解析器。没有骰子。我的 JSON 解析器无法处理以下行:

删除有问题的行会得到一个填充的属性树。对于推特来说显然是不够的。这是我声明我的属性树错误的代码。帮助?

0 投票
3 回答
24316 浏览

c++ - boost::property_tree XML 漂亮打印

我正在使用 boost::property_tree 在我的应用程序中读取和写入 XML 配置文件。但是当我编写文件时,输出看起来有点难看,文件中有很多空行。问题是它也应该由人类编辑,所以我想获得更好的输出。

作为一个例子,我写了一个小测试程序:

file.xml 包含:

运行程序后 file2.xml 包含:

除了手动通过输出并删除空行之外,有没有办法获得更好的输出?

0 投票
1 回答
2471 浏览

c++ - 如何使 boost ptree 以相同的方式解析 xml 和 json?

因此,让我们看一下修改后的示例代码:

我用这样的xml试了一下:

它打印:

第一个数据:模块
第二个数据:文件
第一个数据:模块
第二个数据:Admin
第一个数据:模块
第二个数据:HR
第一个数据:notModule
第二个数据:MyNotModule

但是当我尝试这样的 json 文件(通过这个 web 工具从这个 xml 创建)时:

它打印:

第一个数据:模块
第二个数据:
第一个数据:notModule
第二个数据:MyNotModule

如何使 boost property_tree 在解析 XML 时在 JSON 上产生相同的结果?如何找出 value_type 是否是某种一维数组并遍历它?

0 投票
1 回答
1279 浏览

c++ - 尝试编译基本 Boost PropertyTree 示例时出现问题 - 编译错误。该怎么办?

所以这是官方的 Boost PropertyTree 示例,我尝试在我的 Visual Studio 2008 上编译它,在 VS2010 上也一样Error C2228: left of '.put_value' must have class/struct/union c:\program files (x86)\boost-1.46.1\include\boost\property_tree\detail\ptree_implementation.hpp 795 1

这是我使用的代码:

我没有以任何方式更改我的 boost 发行版,但它无法编译。为什么?

0 投票
2 回答
1451 浏览

c++ - Boost PropertyTree:如何将json数组读入?

所以有这样的json:

如何将module数组解析为multimap<string,string>?是否有可能找出是否module是一个数组而 notModule 不是?

0 投票
3 回答
51980 浏览

c++ - Boost 1.46.1,属性树:如何遍历接收子ptree的ptree?

首先我要说我认为我知道应该怎么做,但是我的代码不会以我尝试的任何方式编译。我的假设基于这个空 ptree 技巧的官方示例。在那里你可以找到下一行:

这表明可以(或应该)从 ptree 中获取 subptree。

所以我假设我们可以通过 ptree 以BOOST_FOREACH这样的方式迭代:

但我得到下一个错误:

错误 1 ​​错误 C2440:“正在初始化”:无法从“std::pair<_Ty1,_Ty2>”转换为“const boost::property_tree::ptree &”

或者如果我尝试

我得到:

错误 1 ​​错误 C2039:“empty_ptree”:不是“boost::property_tree”的成员

那么我该怎么办:如何迭代 Boost Ptree 并获得子 Ptree?

更新: 我也试过这样的代码

这会编译,不会抛出任何异常,但不会抛出任何Sub data异常,它只是跳过这个循环。

更新 2:

嗯...我的 xml 中可能出了点问题 - 现在我使用该代码得到了正确的结果。

0 投票
1 回答
1884 浏览

c++ - 提升属性树

基于此处的 boost 文档:

http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/container.html

“一个节点中可能有多个具有相同键值的子节点。但是,这些子节点不一定是顺序的。find 返回的迭代器可能引用其中任何一个,并且不能保证另一个同名的相对位置孩子们。”

示例 XML:

示例提升代码:

因此,知道了这一点,您将如何获得所有书籍并确保全部阅读?

0 投票
3 回答
5972 浏览

c++ - boost/property_tree/xml_parser.hpp:没有这样的文件或目录

我已经安装了 boost_1_41_0 并尝试遵循一些关于 xml 解析的教程:

但是问题是boost找不到需要的header:

使用 "" 而不是 <> 也无济于事。我还尝试传递选项 cxxflags=-I/pass/to/this/header - 这也不起作用。仅当我使用标头的完整路径时-它才有效,但是它依赖于另一个找不到的头文件。

那么如何让boost安装寻找自己的包含目录呢?谢谢。

0 投票
5 回答
50616 浏览

c++ - Boost PropertyTree:检查孩子是否存在

我正在尝试编写一个 XML 解析器,将 XML 文件解析为 aboost::property_tree并遇到了这个问题。我如何(快速)检查某个属性的孩子是否存在?

显然我可以遍历所有使用的孩子BOOST_FOREACH- 但是,没有更好的解决方案吗?