2014-03-25 30 views
0

對於iOS應用程序,我使用了一個名爲Hpple的開源html解析器來從網頁中抓取一些數據。我正在尋找的兩個標籤是<td class="menugridcell"><td class="menugridcell_last">使用contains()函數創建XPath

我試圖創建一個xpath來搜索任一標籤。我使用'包含()函數不成功的嘗試:

NSString *queryString = @"//td[@class=contains(., 'menugridcell')]" 

應該有符合這個查詢27個節點,但奇怪的是我得到1(甚至不是0)。我嘗試了幾個變化,但我似乎無法找到正確的語法。

供參考,這是我如何搜索他們分別

NSString *queryString = @"//td[@class='menugridcell']"(返回18個節點)

NSString *queryString2 = @"//td[@class='menugridcell_last']"(返回9個節點)

回答

1

你可以試試這個方法:

//td[contains(@class, 'menugridcell')] 

可能的替代方法是使用@pault指出的starts-with()。在註釋:

//td[starts-with(@class, 'menugridcell')] 

或使用or通過兩個條件中的一個選擇:

//td[@class='menugridcell' or @class='menugridcell_last'] 

無論如何,這是一個有點出人意料聽到你使用的庫不承認功能,因爲自XPath 1.0規格可用。

+2

另一個選擇是'td [starts-with(@class,'menugridcell')]' –

+0

它似乎沒有識別包含函數(無效的前綴錯誤),但starts-with選項正常 – Mahir