2014-04-03 104 views
1

考慮下面的XML文件:XPath表達式

<a> 
    <b> 
    </b> 
    <c> 
     <d>content X</d> 
    </c> 
    <c> 
     <d>content Y</d> 
    </c> 
</a> 

有沒有簡單的方法來解析XML使每個元素都有其XPath表達式,所以我當我做一些像curl http://localhost:5000/home/content?xpath=/a/c/d[2]它承認我指的是第二個<d>標籤?

如果沒有簡單的方法,有關如何實現這一目標的任何建議?

+0

因爲XML中的每個''單元只有一個''孩子,不會有任何結果的'.../C/d [2]'。該索引應該是''而不是'',如@dirkk的回答 – har07

回答

1

是的,有。但你實際上不想要第二個<d/>元素,因爲在給定的上下文中沒有。如果您應用位置過濾器(即使用[2]),則意味着您需要給定的<c/>元素中的第二個元素。但每<c/>只有一個<d/>,所以你總是會產生一個空的結果。

因此,正確的XPath是:

curl http://localhost:5000/home/content?xpath=/a/c[2]/d