2015-11-11 47 views
1

我有一個選擇我想在xpath中進行,看起來似乎無法正確完成。所以,我有://td[starts-with(@id, '16276688381') and not(ends-with(@id, '_name'))]在xpath選擇器中合併函數

這是簡單的HTML

<td id="16276688381_name">I don't want this</td> 
    <td id="16276688381_B3" >What I want</td> 
    <td id="16276688381_B4" >More of these...I want them</td> 

一旦我加入,我的選擇消失。任何想法在這裏出了什麼問題?

+0

只需注意,結束並不能自行工作。開始幷包含工作。我的版本是46.0.2490.80 m chrome – Hugs

+0

您的路徑在示例http://xsltransform.net/bnnZVX中爲我選擇了兩個'td'元素。你確定你正在使用XPath 2.0實現嗎?在XPath 1.0中不支持'ends-with',當然如果將它與XPath 1.0實現一起使用,則會得到有關未知函數的錯誤。 –

回答

1

正如馬丁指出,XPath 1.0中不支持ends-with,但你可以用一些字符串長度模擬它計算:

//td[starts-with(@id, '16276688381') and 
    not(substring(@id, string-length(@id) - 4) = '_name'))] 
+0

謝謝。開始與現在是多餘的,這就是爲什麼我需要區分。無論如何,看起來網站已經改變:/ – Hugs

0

ends-with是在2007年的XPath 2.0中引入的功能,瀏覽器可惜還是隻支持的XPath 1.0從1999年