使用xmllint获取元素的名称

时间:2017-05-30 22:44:11

标签: xml xpath xmllint

让我说我有这个xml:

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

为了获取属性的值,我运行以下命令:

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

(注意最后的-

这将返回foo

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

我尝试过:

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

但这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

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

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

name(/Root/Node)

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