如何从 XML 中仅提取标签名称(而不是值),最终使用 XPath

Posted

技术标签:

【中文标题】如何从 XML 中仅提取标签名称(而不是值),最终使用 XPath【英文标题】:How to extract only the tag names (not the values) from XML, eventually with XPath 【发布时间】:2022-01-18 11:56:57 【问题描述】:

我有时会得到 xml 文件(每次都是完全不同的文件),我必须手动提取其中的所有标签名称,并一个一个地复制和粘贴。 有没有办法让这个变得更容易,也许是在线 XPath ? 我对xml和其他程序的了解不多。 如果我能得到一些具体的帮助或一些指导,那就太好了。 提前非常感谢。

示例: 对于

<item>
<test1>819249</test1>
<test2>asdfasf</test2>
<test3></test3>
</item>

我很想得到: 测试1 测试2 测试3

【问题讨论】:

确认一下,您只需要'leaf'标签名称吗? (您的列表不包括item 您好,谢谢,是的,我确认,我宁愿只获取叶子标签名称,如果它们是重复的,只获取其中一个,我忘了提及这一点。 【参考方案1】:

这会选择节点的名称:

/item/*/name()

但它需要XPath 2.0。许多工具仅支持 XPath 1.0。如果您只有 XPath 1.0,那么您也需要 XSLT。见here。

【讨论】:

以上是关于如何从 XML 中仅提取标签名称(而不是值),最终使用 XPath的主要内容,如果未能解决你的问题,请参考以下文章

如何从混合数据类型数组中仅提取一个数据类型值?

从地址簿中仅获取移动部分记录(不是来自iphone,家庭标签等)?

如何从字符串中仅提取版本号

如何从元素中具有相同名称的 xml 文件中获取特定值?

如何在 PL/SQL 中使用 FOR LOOP 从具有相同标签的 xml clob 中提取值

使用xml标签从标签中自动提取项目名称/部件号,导出库存项目