问题标签 [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 回答
8506 浏览

c++ - Boost 属性树和 Xml 解析问题

我正在使用boost::property_tree. 该文档非常模糊,并且在大多数情况下总体上没有帮助。查看源代码/示例也没有太大帮助。

我想知道的是以下内容:

如何迭代当前级别的所有元素?如果我这样做:

ParseEntry我尝试这个:

导致异常(not 不存在)。我也试过这个:

同样的问题。

根据我的理解,当我打电话时,ParseEntry我正在传递对该节点的树的引用。

当我有多个StringTable使用属性树的条目时,有什么办法可以解决这个问题?

0 投票
2 回答
5698 浏览

c++ - 以文件名为键提升属性树

我正在尝试使用文件名作为boost::PropertyTree中的键

然而 '。' 文件名中的字符(例如“example.txt”)会导致在属性树中添加一个附加层。最明显的解决方案是替换 '.' 使用另一个字符,但可能有更好的方法来执行此操作,例如使用转义字符。

在下面的示例中,值 10 将被放入节点 'txt',它是 'example' 的子节点。相反,我希望将值 10 存储在节点“example.txt”中。

如何为单个节点使用完整文件名?

在此先感谢您的帮助!

0 投票
7 回答
70912 浏览

c++ - 使用属性树在 Boost 中创建 JSON 数组

我正在尝试使用 boost 属性树创建一个 JSON 数组。

文档说: “ JSON 数组映射到节点。每个元素都是一个名称为空的子节点。”

所以我想创建一个名称为空的属性树,然后调用write_json(...)以获取数组。但是,文档并没有告诉我如何创建未命名的子节点。我试过ptree.add_child("", value)了,但这会产生:

该文档似乎没有解决这一点,至少我无法弄清楚。任何人都可以帮忙吗?

0 投票
7 回答
39956 浏览

json - 为什么 Boost 属性树 write_json 将所有内容都保存为字符串?有可能改变吗?

我正在尝试使用boost属性树write_json进行序列化,它将所有内容保存为字符串,并不是数据错误,但我每次都需要明确地转换它们并且我想在其他地方使用它们。(如在 python 或其他 C++ json(非 boost)库中)

这是一些示例代码,我得到的取决于语言环境:

并且my_string_to_send_somewhere_else是某事。像这样:

无论如何将它们保存为值,例如: "key1" : true"key2" : 2.2

0 投票
1 回答
9150 浏览

c++ - 使用 Boost property_tree 更新 XML 文件

我有以下 XML 文件:

我想向 Data 节点添加一个新节点:Parameter2="2"。此代码不起作用,保存的文件仍然只包含一个参数:

如果我在 dataTree.put 之后添加这两行,我会得到正确的结果:

我不喜欢这个解决方案,因为它会给更复杂的树结构带来问​​题。是否可以在不删除/添加子节点的情况下更新属性树?

0 投票
1 回答
234 浏览

c++ - 向第三方类添加静态成员变量

我正在为一个项目使用 Boost.Property_Tree,我想向它添加一些功能。我想添加一个“fromFile”静态成员变量,它将找出文件类型,然后使用正确的解析器。在我的项目中,这就是我目前的方式。

然后我有另一个名为 ConfigLoader 的类,我一直在使用它来加载文件。不过,我想将一个函数添加到 ConfigNode 类中。我需要编译器将 ConfigNode 视为 boost::property_tree,但我想添加一个静态函数。有没有办法做到这一点?

0 投票
2 回答
20041 浏览

c++ - Boost.PropertyTree 中的属性是如何解析的?

假设我有这种 XML 格式:

如何使用 Boost.PropertyTree 读取属性?

0 投票
1 回答
12144 浏览

c++ - C++:如何使用 boost::property_tree 创建一个数组?

我看不到使用 boost::property 树创建数组的方法。以下代码...

...只是给我...

boost::property_tree 上的文档很少。如何使用 boost::property_tree 创建 JSON 数组?

0 投票
5 回答
39901 浏览

c++ - 如何迭代提升属性树?

我知道正在接近提升属性树,并看到它是用于 c++ 编程的提升库的一个很好的特性。

好吧,我有一个疑问?如何使用迭代器或类似方法迭代属性树?

在参考中,只有一个浏览树的示例:

但是没有别的了吗?类似于 stl 的容器之类的东西?谈到代码质量,这将是一个更好的解决方案......

0 投票
3 回答
25770 浏览

c++ - Boost Property_Tree 迭代器,如何处理它们?

对不起,我之前问过一个关于同一主题的问题,但我的问题涉及那里描述的另一个方面(如何迭代提升...)。

看看下面的代码:

好吧,正如我在提到的问题中被告知的那样,可以property_tree在 Boost 中使用迭代器,但我不知道它是什么类型,以及我可以使用哪些方法或属性。

好吧,我假设它必须是另一个ptree或代表另一个 xml 层次结构的东西才能再次浏览(如果我愿意的话),但是关于这个的文档非常糟糕。我不知道为什么,但在 boost 文档中我找不到任何好的东西,只是关于浏览节点的宏,但这种方法是我真的想避免的。

所以在这里解决我的问题:一旦在 a 上获取迭代器ptree,我如何访问节点名称、值、参数(xml 文件中的节点)?谢谢