2016-02-01 78 views
2

我有一個很容易解決的問題,但已經好幾天沒有運氣。XMLStarlet:如何選擇XML,返回空

我有一個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文件中沒有定義名稱空間。

有什麼建議嗎?

+3

時脈聯合國辦事處毆打草叢裏解決您的問題。祝你好運! – shellter

回答

1

嘗試這些:

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 
+0

太棒了!它的作品,非常感謝你! – Kayvar