使用 xmlstarlet/xpath 获取所有 child 个名称

Getting all child names using xmlstarlet/xpath

使用xmlstarlet/xpath,如何获取某个节点的所有child个元素的名称?比如我想获取/a

的所有child个元素名
<a>
    <b><c/></b>
    <d/>
</a>

应该return:

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()"

未测试。