2010-07-06 65 views
1

得到節點時,我對前2組具有相同的元素名稱節點:如何使用XPath

<contacts> 
    <names> 
     ... 
    </names> 
    <names> 
     ... 
    </names> 
</contacts> 

通常我會用//contacts/names得到節點,但我該怎麼做,如果他們有同名如何獲得第二或第一或第n?

+0

好問題(+1)。請參閱我的答案以獲得完整的解決方案並解釋要避免的問題。 :) – 2010-07-06 13:27:06

回答

0

您可以這樣做來獲取第一個和/或第二個:

//contacts/names[1] 
//contacts/names[2] 
0

使用// contacts/names [n]獲取第n個名稱節點。例如:// contacts/names [1]獲取第一個名字節點,// // contacts/names [2]獲取第二個名稱節點等。

1

對於提供的XML文檔利用:

/contacts/names[1] 

上述選擇第一names元件。

/contacts/names[2] 

上面選擇第二個names元素。

儘量避免儘量使用//的縮寫,因爲它通常非常低效,會導致上下文節點中所有(子)樹都被遍歷。