得到節點時,我對前2組具有相同的元素名稱節點:如何使用XPath
<contacts>
<names>
...
</names>
<names>
...
</names>
</contacts>
通常我會用//contacts/names
得到節點,但我該怎麼做,如果他們有同名如何獲得第二或第一或第n?
得到節點時,我對前2組具有相同的元素名稱節點:如何使用XPath
<contacts>
<names>
...
</names>
<names>
...
</names>
</contacts>
通常我會用//contacts/names
得到節點,但我該怎麼做,如果他們有同名如何獲得第二或第一或第n?
您可以這樣做來獲取第一個和/或第二個:
//contacts/names[1]
//contacts/names[2]
使用// contacts/names [n]獲取第n個名稱節點。例如:// contacts/names [1]獲取第一個名字節點,// // contacts/names [2]獲取第二個名稱節點等。
對於提供的XML文檔利用:
/contacts/names[1]
上述選擇第一names
元件。
/contacts/names[2]
上面選擇第二個names
元素。
儘量避免儘量使用//
的縮寫,因爲它通常非常低效,會導致上下文節點中所有(子)樹都被遍歷。
好問題(+1)。請參閱我的答案以獲得完整的解決方案並解釋要避免的問題。 :) – 2010-07-06 13:27:06