Xpath: Select 文本和子节点

Xpath: Select text and subchild node

有一个XML

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

如何 select <node> 标签内的整个子字符串?

像这样:

Text1<subnode/>text2

将 xpath 写为:./node/text() returns null.

./node/node() returns 三个节点的序列:

  • 字符串值为"Text1"

  • 的文本节点
  • 一个名为"subnode"

  • 的元素节点
  • 字符串值为"text2"

  • 的文本节点

如果您想要字符串 "Text1<subnode/>text2" 则涉及序列化元素节点。 XPath 看不到原始的词法 XML,只能看到一棵节点树,所以如果你想要词法 XML 那么你必须重建它:这个过程称为序列化。要从 XPath 中进行序列化,您需要 XPath 3.0,它有一个 serialize() 函数可以将节点树转换为字符串。