Хотите найти элементы, которые содержат "матч", или что равное "матч"?
Найдет элементы, которые содержат текстовые узлы, которые равны «матч» (не совпадает ни с одним из элементов из-за начальные и конечные пробелы в random2
):
//*[text()='match']
Это найти все элементы которые имеют текстовые узлы, которые равны «соответствуют», после удаления верхнего и конечного пробелов (соответствует random2
):
//*/text()[normalize-space(.)='match']/parent::*
Это позволит найти все элементы, которые содержат 'матч' в значение текстового узла (соответствует random2
и random3
):
//*[contains(text(),'match')]
Это XPATH 2.0 решение использует спички() функция и шаблон регулярного выражения, который ищет текстовые узлы, которые содержат «совпадение» и начинаются с начала строки (т. е. ^
) или границы слова (то есть \W
) и заканчиваются на конце строки (то есть $
) или границы слова. Третий параметр i
оценивает шаблон регулярного выражения с учетом регистра. (Соответствует random2
)
//*[matches(text(),'(^|\W)match($|\W)','i')]
Вы хотите, чтобы соответствовать, если он содержит слово в любом месте текста (например, «увидеть, если это будет * матч * слово»), или только те элементы, которые имеют значение, равное «матч "(игнорируя окружающие пробелы)? –
это не так уж важно, либо это сработает. Проблема была в основном в том, что она возвращала также своих родителей – julian