Xpath: выделение текста и узла дочернего элемента. - PullRequest
0 голосов
/ 09 мая 2018

Наличие XML

<node>Text1<subnode/>text2</node>

Как выбрать целую подстроку внутри тега <node>?

Примерно так:

Text1<subnode/>text2

Запись xpath как: ./node/text() возвращает ноль.

1 Ответ

0 голосов
/ 09 мая 2018

./node/node() возвращает последовательность из трех узлов:

  • Текстовый узел со строковым значением "Text1"

  • Узел элемента с именем "subnode"

  • Текстовый узел, строковое значение которого равно "text2"

Если вам нужна строка "Text1<subnode/>text2", то это предполагает сериализацию узла элемента. XPath не может видеть исходный лексический XML, только дерево узлов, поэтому, если вы хотите лексический XML, вам придется его реконструировать: этот процесс называется сериализацией. Чтобы выполнить сериализацию из XPath, вам потребуется XPath 3.0, который имеет функцию serialize(), которая преобразует дерево узлов в строку.

...