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)&not(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(), будет извлекать только содержимое только корневого элемента.

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