使用 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()"
未测试。
使用xmlstarlet/xpath,如何获取某个节点的所有child个元素的名称?比如我想获取/a
<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()"
未测试。