Xpath - получить только node контент без других элементов
У меня есть 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)¬(div)]
Что-то вроде этого? Я не могу понять это
Ответы
Ответ 1
Чтобы получить строковое значение div
, используйте:
string(/div)
Это конкатенация всех текстовых узлов, которые являются потомками элемента (top) div
.
Чтобы выделить весь текст node потомков div
, используйте:
/div//text()
Чтобы получить только текстовые узлы, являющиеся прямыми дочерними элементами div
, используйте:
/div/text()
Ответ 2
Какое выражение xpath следует использовать для получить контент div
без его дочерние элементы h1
и div
Это выражение XPath:
/div/node()[not(self::h1|self::div)]
Он выбирает каждый div
дочерний элемент корня, за исключением тех элементов h1
или div
.
Ответ 3
выражение, подобное ./text(), будет извлекать только содержимое только корневого элемента.
С уважением,
Нитин