使用带有 namspace 的 xmlstarlet 查询 xml 文件的值



使用此 XML:

<application xmlns="http://ns.adobe.com/air/application/14.0">
    <id>5555</id>
    <filename>product2</filename>
    <name>prodigy</name>
    <versionNumber>6.5.511</versionNumber>
    <versionLabel>6.5.5110</versionLabel>
</application>

此命令不起作用,不返回任何内容:

xml sel -t -c "/application/versionLabel" application.xml

但是,从应用程序中删除 XMLNS 属性确实有效。 为什么?

试试这个:

 xmlstarlet sel -N x="http://ns.adobe.com/air/application/14.0" -t -m "/x:application/x:versionLabel" -c . -n file

或(使用默认命名空间):

xmlstarlet sel -t -v "/_:application/_:versionLabel" file

输出:

<versionLabel xmlns="http://ns.adobe.com/air/application/14.0">6.5.5110</versionLabel>

相关内容

  • 没有找到相关文章

最新更新