使用xmlstarlet / xpath,如何获取某个节点的所有子元素的名称?例如,我想获取所有/a
的子元素名称
<a>
<b><c/></b>
<d/>
</a>
应该返回:
b
d
我试过了
xmlstarlet sel -t -c 'name(/a/*)' -
但这只会给我
b
最佳答案
我认为XPath 1.0表达式无法做到这一点,您要么需要XPath 2.0 /a/*/name()
(我认为xmlstarlet不支持),要么需要使用XSLT或尝试使用xmlstarlet命令行选项来尝试模仿XSLT。我无法使用该工具,我也不熟悉详细信息,根据http://xmlstar.sourceforge.net/doc/xmlstarlet.txt,您可以尝试
xmlstarlet sel -t -m "/a/*" -v "name()"
未经测试。