XMLStarlet:如何选择XML,返回空

时间:2016-02-01 19:39:30

标签: xml xmlstarlet

我有一个非常容易解决的问题,但是已经好几天没有运气了。

我有一个这样的XML文档:

<?xml version="1.0"?>
<readiness>
    <model>
        <name>Power</name>
        <state>
            <pdlReq>PASS</pdlReq>
            <fileReq>PASS</fileReq>
        </state>
    </model>
</readiness>

我正在努力选择......真的。我甚至无法使用最简单的例子。我尝试了什么:

  • xmlstarlet sel -T -t -m "//readiness" modelReadinessState.xml
  • xmlstarlet sel -T -t -m "/readiness" modelReadinessState.xml
  • xmlstarlet sel -T -t -m "readiness" modelReadinessState.xml
  • xmlstarlet sel -T -t -m "/readiness/model[name='Power']" -v pdl modelReadinessState.xml
  • xmlstarlet sel -T -t -m "/readiness/model[name='Power']" -v pdl -n modelReadinessState.xml
  • xmlstarlet sel -T -t -m "/readiness/model[name='Power']" modelReadinessState.xml
  • xmlstarlet sel -t -m "//readiness" modelReadinessState.xml
  • xmlstarlet sel -t -m "/readiness" modelReadinessState.xml
  • xmlstarlet sel -t -m "readiness" modelReadinessState.xml

我不知道为什么它不能正常工作:(我只是让空白回来了。

注意:此xml文件中没有定义名称空间。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

试试这些:

xmlstarlet sel  -t -c  "//readiness"           modelReadinessState.xml

xmlstarlet sel  -t -c  "readiness/model/name"  modelReadinessState.xml

xmlstarlet sel  -t -v  "readiness/model/name"  modelReadinessState.xml