使用 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
。
假设我有这个 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
。