使用 xmllint 获取元素名称

Get name of element using xmllint

假设我有这个 xml:

<Root>
    <Node size="Foo" />
<Root>

为了得到属性值我运行这个命令:

echo "<Root><Node size='foo' /></Root>"  | xmllint -xpath "/Root/Node/@size" -

(注意最后的-

这将 return foo

现在我的问题是如何让 xmllint return 我的元素名称是 Node?

我试过:

echo "<Root><Node size='foo' /></Root>"  | xmllint -xpath "/Root/Node/name()" -

但这似乎不起作用。

您使用的 XPath 需要 XPath 2.0,而 xmllint 仅支持 XPath 1.0。

将您的 XPath 更改为此 XPath 1.0 表达式,

name(/Root/Node)

您将根据要求回显所选节点的名称 Node