Xpath - получить только содержимое узла без других элементов - PullRequest
34 голосов
/ 16 декабря 2010

У меня есть div elemet:

<div>
   This is some text
   <h1>This is a title</h1>
   <div>Some other content</div>
</div>

Какое выражение xpath я должен использовать, чтобы получить только содержимое div без его дочерних элементов h1 и div

//div[not(h1)&not(div)]

Что-то в этом роде?Я не могу понять это

Ответы [ 3 ]

50 голосов
/ 16 декабря 2010

Чтобы получить строковое значение div, используйте :

string(/div)

Это объединение всех текстовых узлов, которые являются потомками (верхнего) div элемента.

Чтобы выбрать все потомки текстовых узлов div, используйте :

/div//text()

Чтобы получить только текстовые узлы, которые являются прямыми потомками div, используйте :

/div/text()
5 голосов
/ 16 декабря 2010

Какое выражение xpath следует использовать, чтобы получить только содержимое div без его дочерних элементов h1 и div

Это выражение XPath:

/div/node()[not(self::h1|self::div)]

Он выбирает все дочерние элементы корневого элемента div, кроме этих h1 или div элементов.

2 голосов
/ 02 сентября 2014

выражение типа . / Text () будет получать только содержимое корневого элемента.

С уважением, Нитин

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