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

c++ - C ++在boost属性树中存储浮点值

我正在尝试修改一些库,我需要在 ptree 中存储一个浮点值。但是,当我检索该值时,它与我输入的值不同。双打不会发生这种情况。例子:

输出:f:230518.391 pt.float:230518.406 pt.double:230518.391

这里到底发生了什么?

0 投票
1 回答
7451 浏览

xml - 遍历 boost 属性树

我正在使用 boost 属性树迭代 XML 文档并将结果存储在结构中。我遇到的问题是我只能到达第一个“项目”节点而无法访问第二个“项目”节点。我希望有人能指出我在哪里犯了错误。

我的程序输出如下所示(您可以看到缺少项目。没有显示 cookie2、candy2 或 Chocolate2 项目):

这是xml文件:

这是源代码:

感谢您花时间阅读本文。我想我犯了一个简单的错误,但不明白在哪里。

0 投票
1 回答
1560 浏览

c++ - boost::interprocess::ptree 的前向声明

我想ptreeboost::property_tree.

我使用 Visual Studio 2010 和 boost 版本 1.48.0。

我在我的 .h 中按以下方式进行前向声明

然后,我使用 .cpp 中的类

当我尝试编译它时,我收到以下错误

错误 C2371:'boost::property_tree::ptree':重新定义。不同的基础类型。c:\lib\boost\1.48.0\32\boost\property_tree\ptree_fwd.hpp 95

(错误描述可能不同,我已经翻译了它,因为我有 Visual Studio 的意大利语版本)。

在 ptree_fwd.hpp 中给出错误的行如下

相反,如果我不使用前向声明,一切顺利,我编译成功。

我做错了什么以及在这种情况下如何正确使用前向声明?

0 投票
2 回答
11311 浏览

c++ - 更改 boost::property_tree 读取将字符串转换为布尔值的方式

我迷失在 boost property_tree 的头文件中,并且由于缺乏较低层的文档,我决定问什么简单的方法是覆盖流转换器以更改布尔值的解析方式。

问题是在属性树的输入端,有用户,他们可以修改配置文件。可以通过多种方式指定布尔值,例如:

默认行为是检查 0 或 1,然后使用

让流尝试以适当的方式解析当前语言环境的值...如果我们尝试将配置文件发送给国际客户,这可能会很疯狂。

那么覆盖此行为或仅使用布尔值的最简单方法是什么?不仅最容易实现,而且最容易使用——这样从 iptree 派生的类的用户不需要为布尔值做一些特殊的事情。

谢谢!

0 投票
0 回答
214 浏览

c++ - 如何检测 boost::property_tree 中的重复条目

我想递归遍历 boost::property_tree 以查找和剔除重复条目的特定目的。一旦发现树中的路径,有没有办法在父树上发出 get() 排除指定路径的某些实例?我担心解决这个问题可能需要对每个元素(从当前分支开始)进行另一次递归遍历,以积极识别重复条目。

0 投票
3 回答
5891 浏览

c++ - boost::property_tree::json_parser 和两字节宽的字符

介绍

“á”是两字节字符(假设是 UTF-8 编码)。
所以下面的行打印 2。

std::cout仍能正确打印文本。

我的问题

我传递textboost::property_tree::ptree然后传递给write_json

结果是

text 等于 "á",它不同于 "á"。

是否可以在不切换到 的情况下解决此问题std::wstring?改变 library( boost::property_tree::ptree) 是否有可能解决这个问题?

0 投票
1 回答
5509 浏览

c++ - 将子节点添加到 XML 结构的顶部。提升属性树

我正在将一组结果写入 XML 文件。每个结果集包含一系列结果。我的问题是(在多次执行代码期间)当我尝试将一些新结果写入集合时,XML 解析器获取现有 XML 文件中的第一个(顶部)结果集,并将结果附加到那个(旧)设置。例如:

因此,我想知道是否可以将最新的结果集写入添加到 XML 文件的顶部?或者,在检索最新结果集时,获取列表中的最后一个?

我希望我已经清楚地解释了自己。谢谢

(我正在使用的示例代码)

0 投票
1 回答
544 浏览

c++ - C++ Boost 属性树 - 按文件更新树

Boost Property Tree用来加载ini配置文件。
使用这个库,我可以将每个配置文件加载到一个boost::property_tree::ptree对象中。现在我想在一个ptree对象中加载多个配置文件。
我怎么能做这份工作?或者我怎样才能将ptrees 合并到一个对象中?

0 投票
1 回答
4849 浏览

c++ - 转换为 Unicode 时提升属性树问题

好的,首先我不是天生的 C++ 开发人员。我已经设法将一些东西放在一起并且效果很好,但我确信在专家的眼中它看起来像垃圾=)

所以我有一个我制作的免费软件应用程序,它使用 Boost 库中的属性树。我使用使用多字节字符集设置开发了整个应用程序(在 VS2010 中)。我决定是时候通过并更新应用程序以支持 Unicode,因为有些人具有复杂的字符集,我想更好地支持它们。

我经历了更改所有引用和调用以使用宽字符串的繁琐过程,以及所有必要的转换。然而,我在某一时刻完全被难住了,我只剩下两个编译器错误。

它们都来自stream_translator.hpp (/boost/property_tree/),第 33 和 36 行(如下所述):

第 33 行的错误是:

..第 36 行的错误是:

从我能够向后走的内容来看,它来自stream_translator.hpp最终开始作为获取值的调用 [例如 ptree.get("some.path", "default value here")]

我真的完全不知道如何解决这个问题,并且似乎无法在网上找到任何东西来帮助我了解究竟是什么问题。任何提示或信息将不胜感激。

编辑

所以我注释掉了与 ptree 相关的所有内容,直到它编译为止,然后开始重新添加它们。事实证明我可以调用 .get 很好,它是 get_child 错误@第 36 行弹出的地方(还没有完成其他项目, wstring 问题在哪里)。

为简化起见,以下是调用的有效顺序,在调用 get_child 之前都可以:

0 投票
2 回答
411 浏览

xml - read_xml() 由于缺少双引号而引发异常

我使用 boost::property_tree 对象来解析 xml,如下所示:

当我调用 read_xml() 来解析这个内容时,它运行良好。但是,如果我像这样删除attr属性周围的那些双引号:

它抛出xml_parse_error异常。

是否可以设置任何标志来忽略对双引号的检查?