gpt4 book ai didi

C++ Boost 属性树通过属性限定符更新现有节点

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:56 24 4
gpt4 key购买 nike

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

<config>
<Ignored>
<Ignore name="Test A">
<Criteria>
<value>actual value</value>
</Criteria>
</Ignore>
<Ignore name="Test B">
<Criteria>
<value>actual value</value>
</Criteria>
</Ignore>
</Ignored>
<config>

我希望能够做两件事:

  1. 直接获取测试 A 元素,而不必循环所有忽略元素......就像属性上的选择器一样。
  2. 如果不出意外,我需要一种方法来更新任一忽略元素,但似乎无法弄清楚

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

类似于:

pt.put("config.Ignored.Ignore.<xmlattr>.name='Test A'.Criteria.value",some_var)

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

全面披露:我是 C++ 的新手,可能遗漏了一些明显的东西。

最佳答案

Boost.property_tree xml 解析器 (RapidXML) 不支持这个。
如果您想要开箱即用的功能,请考虑使用类似 TinyXPath 的东西。

或者使用显式循环来查找具有所需属性的Ignore 节点。然后你可以使用

someIgnoreNode.put("Criteria.value", some_var);

关于C++ Boost 属性树通过属性限定符更新现有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com