使用:
/*/*/*[7]/text()
如果您與XPath引擎的API正確註冊的命名空間,你可以使用:
/w:document/w:body/w:p[7]/text()
注意:
注意使用[]
運算符與一起出現問題僞運營商:在這種特定的情況下,簡單的表達
//w:p[7]
選擇想要的元素,但在總體上選擇每w:p
元素是7日(按文檔順序)w:p
孩子其父的。
所以,當對這個文件評價:
<w:document xmlns:w="w:w">
<w:body>
<a>
<w:p>para1</w:p>
<w:p>para2</w:p>
<w:p>para3</w:p>
</a>
<b>
<w:p>para4</w:p>
<w:p>para5</w:p>
<w:p>para6</w:p>
<w:p>para7</w:p>
<w:p>para8</w:p>
<w:p>para9</w:p>
</b>
<w:p>para10</w:p>
</w:body>
</w:document>
表達//w:p[7]
選擇什麼。
然而,當對這個文件評價:
<w:document xmlns:w="w:w">
<w:body>
<a>
<w:p>para1</w:p>
<w:p>para2</w:p>
<w:p>para3</w:p>
<w:p>para4</w:p>
<w:p>para5</w:p>
<w:p>para6</w:p>
<w:p>para7</w:p>
<w:p>para8</w:p>
</a>
<b>
<w:p>para9</w:p>
<w:p>para10</w:p>
<w:p>para11</w:p>
<w:p>para12</w:p>
<w:p>para13</w:p>
<w:p>para14</w:p>
<w:p>para15</w:p>
</b>
</w:body>
</w:document>
同一表達式選擇:
<w:p xmlns:w="w:w">para7</w:p>
<w:p xmlns:w="w:w">para15</w:p>
錯誤答案!實際上,根據XML文檔,'someName [7]'可以選擇任意數量的元素,甚至什麼也不是,即使someName元素的總數遠遠超過7。 –
@DimitreNovatchev,答案的目的是爲了證明對XPath的索引語法。另外,由於它取決於XML和用戶的具體要求,所以我很難將其稱爲錯誤的答案。 –
@_Shane S. Anderson:這不僅是一個錯誤的答案 - 它是有害的,因爲它會影響人們相信''someName [k]'是在文檔中選擇第k個'someName'元素的正確方法。我們不應該允許這樣的虛假信息。 **請考慮儘快糾正或刪除此「答案」**。 –