Как выбрать узел, имеющий какой-либо текст внутри его потомков, используя XPath? - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть тег как

<a href="xyz.html">
<b>Some text here</b>
</a>

если я ищу документ по

//a[text()]

тега нет в списке, так как тег ссылки не имеет InnerText напрямую. как я могу сопоставить его для Предмета с внутренним текстом где-нибудь в его потомках?

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

как мне сопоставить его с Item с внутренним текстом в любом месте его потомков?

Если под Item вы подразумеваете элемент a:

//a[.//text()]

Если ваш провайдер XML-дерева сохраняет только текстовые узлы с пробелами:

//a[.//text()[normalize-space()]]

Строковое значение элемента - это конкатенация его текстовых узлов-потомков, поэтому вы также можете использовать:

//a[string()]

Или

//a[normalize-space()]
0 голосов
/ 26 апреля 2011

Этого тоже должно быть достаточно:

//a//text()

0 голосов
/ 26 апреля 2011

попробуй: //a[string(.) = "some text here"]

(или //a[contains(string(.), 'some text')])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...