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

c++ - 将对象放入 boost::property_tree 的正确方法是什么?

考虑以下示例:

我是新手,我愿意将 Foo 对象放入属性树中。上面的示例将无法编译并给出错误:

c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/boost/property_tree/stream_translator.hpp:33:13: error: no match for 'operator<<' in 's << e'

任何人都可以提出正确的方法吗?

0 投票
1 回答
1307 浏览

c++ - 提升属性树,迭代器到要插入的元素?

我通过 boost 手册和互联网搜索了很多,因为我相信这是一个相当标准的功能?

好吧,我正在研究“合并”属性树。- 我注意到了这个功能insert,我希望我可以用这个合并树?下面是我试图开始工作的那一行:

base并且t是“财产树”,base具有(许多)分支“BRANCH”。现在我想插入t这个分支?
更具体地说:如果我知道该元素的名称,如何获得“元素”的迭代器?

0 投票
1 回答
1214 浏览

c++ - 多次加载属性树 xml-parser 异常

我正在使用属性树 xml-parsing 为我的应用程序编辑一些设置我创建了一个结构默认设置

我通过在我的应用程序 default_settings ds 中创建一个全局变量并通过此变量 (ds.imPath) 调用它们来访问变量:imPath、calPath、.. 等

奇怪的是,它在加载完成一次但我得到一个异常时工作

你有什么建议?

0 投票
1 回答
505 浏览

c++ - 在 Boost 的属性树中自动输入

目前我有这个代码:

我试图简单地做到这一点。唯一阻止我的是,我将来还会有 std::string 变量,这意味着简单地循环所有值并使用 as() 是行不通的。

我考虑过尝试将 boost::any 用于 as<>(),但这不起作用(大量模板错误)。我还考虑过有一个值指定它将是哪种类型的元组,然后切换它并调用适当的 as<>(),但这似乎有点矫枉过正。

有没有办法简单地做到这一点?

0 投票
2 回答
7536 浏览

c++ - 将未命名节点添加到 boost::property_tree::ptree

我需要将未命名的节点添加到 boost::property_tree::ptree 就像它的 JSON 解析器对数组所做的那样。但是,当我想这样做时,我会在运行时得到这样的断言:

我喜欢

其中 tree 和 child 都是 ptree-s 和名称 char*。

我怎么能像 ptree-s 的 JSON 解析器那样做呢?

0 投票
1 回答
1949 浏览

xml - 如果这些子节点本身有子节点,如何迭代 boost::propertytree 中的子节点?

我从 XML 文件加载 boost::property_tree::ptree,看起来有点像这样:

我使用 read_xml 将其加载到属性树中。现在我想构建一个包含结构的向量,类似于element-tags。我可以执行以下操作:

到目前为止它很好,但是我在获取元素中的数据时遇到了问题。node.second应该包含它,但我如何正确访问它?node.second.get("xmlattr.type")不工作。

0 投票
2 回答
9822 浏览

c++ - 如何合并/更新 boost::property_tree::ptree?

我已经阅读了 boost::property_tree 的文档,但还没有找到一种方法来更新或合并一个 ptree 与另一个 ptree。我该怎么做呢?

给定下面的代码,update_ptree 函数会是什么样子?

我考虑过迭代新的 ptree 并使用“put”来插入值。但是“put”需要一个类型,我不知道如何从新的 ptree 中获取该信息并将其用作旧 ptree 的参数。

我在 update_ptree 函数中尝试过的一件事是使用:

基本上我尝试将 pt 作为子级添加到 pt_ 的根目录中。不幸的是,这似乎不起作用。

有任何想法吗?

我很感激任何帮助。

谢谢你。

(我试图将标签 property_tree 和 ptree 添加到这个问题,但我不被允许)

0 投票
1 回答
1010 浏览

c++ - Boost 属性树:如何在其中存储指针?

我知道这不是默认的,也可能不是使用 Boost 属性树的首选方式。但似乎都需要创建命名指针树。所以我尝试了:

如果可能的话,我希望 tham 可以自动恢复(简单的.get()not .get<T>

似乎它可以存储指向函数的指针(主要是我想使用它)。但我无法从中获取它们(所以我想知道如何将指针存储在 Boost 属性树中以便自动恢复?

0 投票
2 回答
4731 浏览

c++ - C ++ Boost属性树按属性限定符更新现有节点

好的,下面是 XML 结构的示例:

我希望能够做两件事:

  1. 直接对 Test A 元素执行 get 操作,而无需循环所有 Ignore 元素……就像属性上的选择器一样。
  2. 如果不出意外,我需要一种更新任何一个 Ignore 元素的方法,但似乎无法弄清楚

我必须删除元素并重新创建它吗?我似乎无法找到一种方法来执行通过属性(在该级别将是唯一的)限定元素(在同一级别有许多具有相同名称的元素)的放置。

就像是:

或者其他任何可以实现最终目标的东西。非常感谢!

全面披露:我对 C++ 很陌生,可能会遗漏一些明显的东西。

0 投票
2 回答
13884 浏览

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

我有以下 XML 文件,我想使用以下结构存储它。

数据结构:

xml文件:

我很清楚如何访问 diagram.states 。我可以用以下代码做到这一点:

我不清楚的是如何从 diagram.transitions.transition 级别访问数据?

我的问题是我在文档中找不到任何关于如何解析具有多个级别的复杂 xml 文件的示例。