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