在XPATH中获取元素名称

39
如果我使用XPATH选择了一个元素,如何获取其名称?我的意思是像//element/[@id=elid]/text()中的text()函数一样。
2个回答

73

使用name()命令。(在此处查找新版本XPath语言的文档here。)

这是您示例的修改版本:

仅适用于XPath 2.0+:

//element/*[@id='elid']/name()

适用于XPath 1.0和2.0+*:

name(//element/*[@id='elid'])

如果使用2.0+,表达式//element/*[@id='elid']必须只返回一个元素。否则,您将会收到类似于A sequence of more than one item is not allowed as the first argument of fn:name()的错误信息。
您也可以使用local-name(),它返回expanded name的本地部分(不带任何命名空间前缀)。

2

可以通过以下方式获取标签名称树:

echo "du //Element/*" | xmllint --shell response-02.xml
Ele1
    id
    name
    Nested1
        id
        name
Ele2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接