问题标签 [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.
c++ - C ++在boost属性树中存储浮点值
我正在尝试修改一些库,我需要在 ptree 中存储一个浮点值。但是,当我检索该值时,它与我输入的值不同。双打不会发生这种情况。例子:
输出:f:230518.391 pt.float:230518.406 pt.double:230518.391
这里到底发生了什么?
xml - 遍历 boost 属性树
我正在使用 boost 属性树迭代 XML 文档并将结果存储在结构中。我遇到的问题是我只能到达第一个“项目”节点而无法访问第二个“项目”节点。我希望有人能指出我在哪里犯了错误。
我的程序输出如下所示(您可以看到缺少项目。没有显示 cookie2、candy2 或 Chocolate2 项目):
这是xml文件:
这是源代码:
感谢您花时间阅读本文。我想我犯了一个简单的错误,但不明白在哪里。
c++ - boost::interprocess::ptree 的前向声明
我想ptree
对boost::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 中给出错误的行如下
相反,如果我不使用前向声明,一切顺利,我编译成功。
我做错了什么以及在这种情况下如何正确使用前向声明?
c++ - 更改 boost::property_tree 读取将字符串转换为布尔值的方式
我迷失在 boost property_tree 的头文件中,并且由于缺乏较低层的文档,我决定问什么简单的方法是覆盖流转换器以更改布尔值的解析方式。
问题是在属性树的输入端,有用户,他们可以修改配置文件。可以通过多种方式指定布尔值,例如:
默认行为是检查 0 或 1,然后使用
让流尝试以适当的方式解析当前语言环境的值...如果我们尝试将配置文件发送给国际客户,这可能会很疯狂。
那么覆盖此行为或仅使用布尔值的最简单方法是什么?不仅最容易实现,而且最容易使用——这样从 iptree 派生的类的用户不需要为布尔值做一些特殊的事情。
谢谢!
c++ - 如何检测 boost::property_tree 中的重复条目
我想递归遍历 boost::property_tree 以查找和剔除重复条目的特定目的。一旦发现树中的路径,有没有办法在父树上发出 get() 排除指定路径的某些实例?我担心解决这个问题可能需要对每个元素(从当前分支开始)进行另一次递归遍历,以积极识别重复条目。
c++ - boost::property_tree::json_parser 和两字节宽的字符
介绍
“á”是两字节字符(假设是 UTF-8 编码)。
所以下面的行打印 2。
但std::cout
仍能正确打印文本。
我的问题
我传递text
给boost::property_tree::ptree
然后传递给write_json
结果是
text 等于 "á",它不同于 "á"。
是否可以在不切换到 的情况下解决此问题std::wstring
?改变 library( boost::property_tree::ptree
) 是否有可能解决这个问题?
c++ - 将子节点添加到 XML 结构的顶部。提升属性树
我正在将一组结果写入 XML 文件。每个结果集包含一系列结果。我的问题是(在多次执行代码期间)当我尝试将一些新结果写入集合时,XML 解析器获取现有 XML 文件中的第一个(顶部)结果集,并将结果附加到那个(旧)设置。例如:
因此,我想知道是否可以将最新的结果集写入添加到 XML 文件的顶部?或者,在检索最新结果集时,获取列表中的最后一个?
我希望我已经清楚地解释了自己。谢谢
(我正在使用的示例代码)
c++ - C++ Boost 属性树 - 按文件更新树
我Boost Property Tree
用来加载ini配置文件。
使用这个库,我可以将每个配置文件加载到一个boost::property_tree::ptree
对象中。现在我想在一个ptree
对象中加载多个配置文件。
我怎么能做这份工作?或者我怎样才能将ptree
s 合并到一个对象中?
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 之前都可以:
xml - read_xml() 由于缺少双引号而引发异常
我使用 boost::property_tree 对象来解析 xml,如下所示:
当我调用 read_xml() 来解析这个内容时,它运行良好。但是,如果我像这样删除attr属性周围的那些双引号:
它抛出xml_parse_error异常。
是否可以设置任何标志来忽略对双引号的检查?