2011-04-21 76 views
0

我有這樣的XPath:兩級包含在XPath

//tr[contains(td, 'Europe')] 

這是工作,當我有這樣的:

<tr> 
    <td></td> 
    <td>Europe</td> 
    <td></td> 
</tr> 

但現在我有這樣的:

<tr> 
    <td></td> 
    <td><a>Europe</a></td> 
    <td></td> 
</tr> 

我現在如何獲得XPath(基於歐洲在那裏)。

我想:

//tr[contains(a, "Europe")] 

//tr[contains(text(), "Europe")] 

和許多其他無聊的事情沒有任何成功。

回答

4
//tr[contains(td, 'Europe')] 

這應該適用於兩種模式,因爲fn:contains()將兩個參數都轉換爲字符串。

我確實看到一個不同的模式的問題,其中可能有多個td元素。對於這種情況下,你應該使用:

//tr[td[contains(.,'Europe')]] 
+0

是的,有更多的tds在那裏,我會解決這個問題,謝謝你的答案。 – Pablo 2011-04-21 14:04:55

+0

您可能想要.//tr[td[contains(.,'Europe')]],如果有任何機會,這也可能會在上下文節點之外匹配。 – 2011-04-21 14:21:41