问题标签 [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 投票
1 回答
2518 浏览

c++ - 提升属性树 put/get DBL_MAX

我正在编写一个 ptree 并且在某些时候我需要将 DBL_MAX 放入(作为默认值)。当我打开生成的 xml 文件时,我看到了正确的数字。

但是当我使用 ptree.get 获取数字时,会引发异常:conversion of data to type "d" failed

这是我的代码:

什么可能导致此错误,我该如何解决?

0 投票
0 回答
262 浏览

c++ - 将数据添加到 boost property_tree

我有一个存储在 XML 中的简单树结构,boost::property_tree::ptree用于读取和提取信息。然后我使用重新创建树,std::maps以便我可以将数据存储在叶子中。这很好用,我喜欢固定树结构与数据的分离,但我觉得我重复了很多代码,如果我可以为 ptree 中的每个叶节点添加一个类,我可以大大简化我的代码。

作为我boost::variant在课堂上使用的一个可能的轻微并发症,我希望将其存储在叶子中。

我的主要问题是我是否应该尝试将动态数据添加到 ptree,其次,如果是这样,您对添加它的最佳方式有什么建议吗?

0 投票
1 回答
10839 浏览

c++ - 使用 boost 属性树解析 JSON

我正在构建一个从 themoviedb.com 获取电影信息的应用程序。该信息以 JSON 文件的形式提供。我正在尝试使用 boost 属性树来存储信息。但是有一个小问题。

我通过以下代码说明问题:

但是当我运行它时,我得到以下输出:

有谁知道我做错了什么?我猜它在 BOOST_FOREACH 代码中。

PS:将 Xcode 4.5.2 与 LLVM GCC 4.2 编译器一起使用。

0 投票
3 回答
30800 浏览

c++ - 使用 Boost 解析 XML 属性

我想与您分享一个我在尝试使用 Boost 库(版本 1.52.0)处理 C++ 中 XML 元素的某些属性时遇到的问题。给定以下代码:

假设我有以下 XML 结构:

因此,我将得到的控制台输出将是下一个:

但是,如果我决定为从根节点放下的每个元素使用一个通用结构(以便从它们的特定属性中识别它们),结果将完全改变。在这种情况下,这可能是 XML 文件:

输出如下:

由于已经打印了三组属性,因此似乎可以正确识别挂在根节点上的元素数量。尽管如此,它们都指的是第一个元素的属性......

我不是 C++ 方面的专家,而且对 Boost 来说真的很陌生,所以这可能是我在哈希映射处理方面所缺少的东西......任何建议都将不胜感激。

0 投票
1 回答
3831 浏览

c++ - How to iterate over XML structure in boost::property_tree

I have an XML structure along the lines of:

Which is being read into a boost::property_tree, There are 1..Many <SomeElement>s, and then at an arbitrary depth within that element there could be 1..Many <ElementIWant>s

Is there a way to iterate over the <ElementIWant> directly (in a single loop) in the order that they appear in the doc?

I have looked at equal_range

However it seems to fail to return nodes (Which I suspect is because equal_range works at the level of the tree node supplied) Which brings me to the question above...

0 投票
1 回答
2258 浏览

c++ - Boost 属性树的并发问题

我开发了一个简单的包装器,它用 Boost 属性树封装了一个 JSONObject。问题是此代码中的分段错误:

一点上下文,我正在使用 JSON 进行消息序列化。如果程序只使用一个线程,它就可以正常工作。但是如果程序使用两个线程在上面代码的最后一行给出了分段错误。

每个线程都有自己的 JSONObject 对象,并且线程之间不共享任何变量。我的想法是,流可能在内部不是线程安全的。

谁能帮我?

0 投票
2 回答
2937 浏览

c++ - Boost Property Tree:从节点中删除属性

我有以下 XML 文件:

我想用 and 删除边缘的startand属性。endsource="0"target="1"

我尝试这样做的方式是在以下代码中。假设 XML 文件名为ptree_test.gexf我读入它,在树中找到正确的边,然后尝试使用erase来摆脱属性。

这不起作用。它不会删除该属性。事实上,如果我输入一个调试语句来打印它的返回值,edge.erase(attr.first)就会显示0.

0 投票
2 回答
8663 浏览

c++ - Boost c++ 属性 - 如果键不存在则设置为 false

我是使用属性树进行 json 解析的新手。

如果我有这个哈希:

我需要检查一个密钥是否存在,如果没有将其设置为 false。

我该如何优雅地做到这一点?

谢谢

0 投票
1 回答
2603 浏览

c++ - Boost .ini 文件解析器 - 多个部分名称

我正在使用 boost::property_tree 来解析 ini 文件。

我希望能够执行以下操作:

数据.ini:

当前程序运行,并给出了这个错误:duplicate section name显然是因为有两个[proton]部分。

有没有另一种方法来解析这样的文件?我应该使用 xml 文件吗?

0 投票
1 回答
6246 浏览

c++ - 检查提升属性树中的值是树还是终端值

我一直在 boost::property_tree(用于读取 json)中寻找 API,可用于确定字段的值是树还是终端值。例如,我有一个 json,其中 foo 的值可以是第一个块中所示的树,也可以是第二个块中所示的字符串。

我知道我们可以先检查 get_child_optional。如果返回值为null,那么我们可以检查get_optional。但是有没有更好的方法/api来做到这一点?