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