2014-04-26 68 views
0

下面的2個xpaths工作正常,從表中提取數據。Xpath從表格中提取數據包含

//*[@id="codeRow"]/td/strong[contains(text(),"Besnier")] 
//*[@id="codeRow"]/td[contains(text(),"Besnier")] 

我想結合這兩個並創建一個XPATH語句,可以根據需要使用。 我試圖使用或,但它沒有工作 外匯:

//*[@id="codeRow"]/td[contains(descendant::*/text() , "Besnier")] 
or [contains(text(),"Besnier")] 

請告知

+0

有一個「後代或自我」軸:http://www.w3schools.com/xpath/xpath_axes.asp – CoDEmanX

回答

1

試試這個XPath:

//*[@id="codeRow"]/td[contains(., "Besnier")]

XPath引擎將轉變.(當前節點),以string ,然後調用函數。

在當前節點和所有子節點中搜索文本節點片段「Besnier」,不需要使用軸來選擇所有後代及其文本節點。

+0

非常感謝,您的解決方案運行良好。 – user3574960

+0

這不會像@ user3574960發佈的原始XPath一樣返回'td'和'strong'元素。爲此你需要一個聯合,例如 // * [@ id =「codeRow」] /(td/strong [contains(text(),「Besnier」)] | td [contains(text(),「Besnier」)] – adamretter

+0

事實上,簡化到: // * [@ id =「codeRow」] /(td | strong)[contains(text(),「Besnier」)] – adamretter