Я хотел бы извлечь весь текст из подносов конкретного документа и вернуть текстовый массив. Я думаю, было бы легче показать это на примере:Извлечение и группировка всех текстовых узлов с использованием Xpath 2.0
данного документа:
<root>
<div>
some text
<p>some other text</p>
</div>
<div>
another text
<b>yet another text <em>even more</em></b>
end of text
</div>
</root>
Я хотел бы построить выражение, которое возвращает два элемента:
[0] some text someother text
[1] another text yet another text even more end of text
Я пытался много но мне кажется, что здесь что-то не хватает, легко извлечь div только (просто // div), но как сгруппировать их и объединить все текстовые() подноды в каждом div отдельно?
Nope. // div/text() вернет больше узлов, поскольку первый div имеет как минимум 1 текстовый узел, а второй имеет как минимум 2 текстовых узла. // div // text() вернет еще больше узлов. Выражение, которое я ищу, должно включать все узлы text() в каждом div отдельно. Что-то вроде // div/concat (.// text()), но это не работает, конечно. – Pma
Также я использую чистую XPATH в приложении java, я не могу выполнить постпроцесс с использованием XSLT, поэтому я ищу идеальное решение XPATH. – Pma
Здесь нет чистых решений XPath. Извините. Подумайте о XPath как о селекторах CSS ... они - селекторы, а не трансформаторы. – greut