xpath
2014-06-23 79 views 4 likes 
4

文本在使用XPath搜索包含空格

<tr> 
    <td class="f4 trimJustl" 
     valign="middle" 
     style="color:#ffffff;" 
     artcolor="#ffffff">Create Network Container</td> 
</tr> 

我想找到td元素在文本等於創建網絡集裝箱。 我創建了XPath

//td[text()='Create Network Container'] 

但它不工作。我也試過

//td[contains(text(),'Create Network Container')] 

但是這對我也不適用。

+0

我試過// td [contains(text(),'Network')]]。但是我想在文本中使用全部三個詞,例如'創建網絡容器' – user3766763

+0

鑑於您使用的HTML標記的相關部分與此處發佈的內容完全相同,您的XPath應該與'​​'元素相匹配 – har07

回答

1

嘗試this

//td[matches(text(), '\s*Create\s+Network\s+Container\s*')] 

說實話這對我的作品在不同的評估我檢查它在:

//td[text() = 'Create Network Container'] 

上一頁嘗試是必須匹配所有潛在空間般的人物,可能是那裏(也許它不只是一個單一的空白,這就是爲什麼這個最簡單的解決方案不會給你正確的結果。)

+0

Firepath本身不是評估這個xpath。它給出無效的xpath錯誤 – user3766763

+0

我修復了初始查詢。它工作,如果你使用xpath 2.0。測試它在這裏:http://videlibri.sourceforge.net/cgi-bin/xidelcgi – mareckmareck

10

它通過剪切和粘貼您發佈的示例。您的原始來源可能包含不匹配的製表符或其他空白字符。以下是一些備選:

1)歸位

//td[normalize-space(text()) = 'Create Network Container'] 

2)比較使用的td字符串值(這也將匹配Create <b>Network</b> Container

//td[normalize-space(.) = 'Create Network Container'] 

3)檢查每個字分開(忽略詞序)

//td[contains(text(), 'Create') and contains(text(), 'Network') and contains(text(), 'Container')] 

4)剝離白條速度,製表符,換行符,換行符,回車和比較結果:

//td[translate(text(), " &#13;&#10;&#09;&#xa;", "") = 'CreateNetworkContainer'] 
+0

+1投票。正在處理一個我正在使用的「包含」的xpath,並且當我使用連字符時,屏幕上沒有找到文本。規範化空間幫助了我!謝謝! – IamBatman

相關問題