我有以下的HTML的XPath位置過濾工作不正常
<html>
[snip]
<table>
[snip]
<tr><td>One</td><td>1-1</td></tr>
[snip]
</table>
[snip]
<table>
[snip]
<tr><td>One</td><td>1-1-1</td></tr>
[snip]
</table>
</html>
..和我想得值「1-1-1」使用以下XPath
//tr[td[1] = 'One'][2]/td[2]
我將其描述爲從包含至少一個td元素的第二個tr元素中檢索第二個td元素值,其中第一個td元素值爲'One'。我已經嘗試過各種改動,如position()=last()
,但無濟於事。
我只知道在父行的第一個單元格中第二次出現的文本「One」標識了我可以從第二個單元格中取出文本的行......所以硬編碼的東西不起作用例如//table[2]/tr[1]/td[2]
)。
有人能告訴我爲什麼上面的xpath不起作用嗎?我已經看過了W3C的網站,發現類似的XPath:
child::*[self::chapter or self::appendix][position()=last()]
描述如下:
選擇上下文節點
..這是最後一章或附錄孩子與我正在嘗試做的類似,但也許嵌套是不允許的。
哎喲,我應該意識到這種區別。謝謝你的解釋! – user1098705 2011-12-15 04:31:43