如何获取节点的名称?

Posted

技术标签:

【中文标题】如何获取节点的名称?【英文标题】:How can I get the name of a node? 【发布时间】:2014-03-27 15:24:04 【问题描述】:

有没有办法获取节点的名称?例如:

Fruits:
   - apple
   - orange
   - pear

在 C++ 中:

YAML::Node fruit = parser["Fruits"];
cout << fruit.name() << endl;  // should print "Fruits"

有没有类似 YAML::Node::name() 的东西?我在 Node.h 中没有看到任何符合要求的内容。

如果没有,关于修改代码以记录此信息的简单方法有什么建议吗?

谢谢!

【问题讨论】:

【参考方案1】:

您真正要寻找的是与地图中的值关联的键。你是对的,没有从一个值返回到它的键的链接,但是当你首先导航节点时,你可以存储一个。

如果你所有的键都是字符串键,那么每当你将值传递给某个函数时,也只需传递字符串键:

// Instead of:
doSomething(node[key]);

// Call:
doSomething(key, node[key]);

【讨论】:

如果解析器能够将这些信息嵌入其中,这样用户代码就不必跟踪层次结构来进行错误捕获。 如果解析器不保留此信息,那么我必须将大多数 YAML 调用嵌入到 try/catch 块中,并使用我自己的错误处理或其他类似的侵入性错误捕获。这给用户代码增加了很多开销。 如果您觉得这很重要,请在项目主页上提交功能请求。【参考方案2】:
Fruits:
   - apple
   - orange
   - pear

这是一个键值对

“水果”是关键

" -苹果 -橙 -pear " 是值

YAML::Node fruit = parser["Fruits"];

该命令使用一个键查询值 所以节点“fruit”只是保存关于值的信息。

【讨论】:

以上是关于如何获取节点的名称?的主要内容,如果未能解决你的问题,请参考以下文章

vue3 如何通过 ref 获取 DOM 节点

如何使用 SchemaTypeRegistry 和 SchemaManager 从前缀和节点名称中获取类定义?

如何使用 xpath/php 获取 xml 文件中的节点名称?

如何在 Eclipse Milo 中获取 OPC UA 节点名称?

oracle的PL/SQL中如何根据节点名称直接获取xml某个节点的值

如何获取具有相同名称的元素并根据 XSLT 中的子节点值对它们进行排序