2015-11-05 65 views
0

我的XPath,如:XPATH:選擇文本完全匹配模式通過

//span[text()[contains(.,"" + text + "")]] 

如果我有兩個字符串匹配text值,如:蘋果,紅(蘋果)我的XPath選擇紅色(蘋果)。如果我通過申請,我怎麼能讓它選擇我傳入的內容,我期望蘋果。

對我來說,這是不可取的,準確地指向文本的路徑div/span/etc。我想在所有spans中直接搜索text值路徑。

回答

0

如果我正確理解你的問題,比使用=而不是包含函數。

//span[. = "" + text + ""] 

f.x.這種XML

<fruits> 
    <span id="1">Apple</span> 
    <span id="2">Red(Apple)</span> 
    <span id="3">Apple, Red(Apple)</span> 
</fruits> 

這樣的XPath會回到你紅(蘋果)

//span[.='Red(Apple)'] 

結果是

Element='<span id="2">Red(Apple)</span>' 
+0

謝謝大家幫忙 –

+0

這是一個非常常見的錯誤,人們認爲含有()表示「節點包含值」。它實際上意味着「字符串包含子字符串」。不要猜測:閱讀規範。 –