Для приложения iOS я использую открытый HTML-анализатор html под названием Hpple для очистки некоторых данных с веб-страницы. Два <td class="menugridcell">
которые я ищу, это <td class="menugridcell">
и <td class="menugridcell_last">
Я пытаюсь создать один xpath, который ищет любой тег. Я безуспешно пытался использовать функцию "contains()":
NSString *queryString = @"//td[@class=contains(., 'menugridcell')]"
Для этого запроса должно быть 27 узлов, но, как ни странно, я получал 1 (даже не 0). Я попробовал несколько вариантов, но я не могу найти правильный синтаксис.
Для справки, вот как я искал их отдельно
NSString *queryString = @"//td[@class='menugridcell']"
(возвращает 18 узлов)
NSString *queryString2 = @"//td[@class='menugridcell_last']"
(возвращает 9 узлов)
Вы можете попробовать:
//td[contains(@class, 'menugridcell')]
Возможные альтернативы - использовать start starts-with()
как указано @pault. в комментарии:
//td[starts-with(@class, 'menugridcell')]
или с помощью or
для выбора одним из двух условий:
//td[@class='menugridcell' or @class='menugridcell_last']
Во всяком случае, немного удивительно, что библиотека, которую вы используете, не распознает функцию contains()
, потому что contains()
доступна со спецификацией XPath 1.0.
//td[starts-with(@class, 'menugridcell')]