我正在尝试在文档中获取 所有 项目的本地名称:
<document>
<item_0001>Erstes Element</item_0001>
<item_0002>Zweites Element</item_0002>
<item_0003>Drittes Element</item_0003>
<item_0004>Viertes Element</item_0004>
<other_0001>Erstes Element</other_0001>
<other_0002>Zweites Element</other_0002>
</document>
以下仅返回 第一个 项目的标记名称:
local-name(/document/*)
不应*
让它返回 所有 项目吗?为什么不呢,我如何返回我想要的所有标签名称?
答案 0 :(得分:1)
XPath表达式,
/document/*
会返回所有项目。在强调local-name()
的调用之前, XPath 1.0 将结果节点集自动转换为第一个节点。 (如果您使用的是XPath 2.0,local-name(/document/*)
会导致运行时错误。)
在 XPath 1.0 中,没有良好的XPath解决方案来实现您的结果。通常,您可以通过托管语言(XSLT,Python,Java等)将函数应用于生成的节点集。
在 XPath 2.0 中,您可以使用
/document/*/local-name()
(或只是/document/*/name()
,因为无论如何都没有游戏中的命名空间)来实现你的结果:
item_0001
item_0002
item_0003
item_0004
other_0001
other_0002