XPath: select text node

具有以下 XML:

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

如何通过 XPath 选择第一个或第二个文本节点?

就像这样:

/node/text()[2]

当然不行,因为它是节点内每个文本的合并结果。

297100 次浏览

我已经在 MarkLogic 和 Zorba Xquery/Xpath 的实现中测试了你的 Xpath 和我的 Xpath。

两个都可以。

/node/child::text()[1] - should return Text1
/node/child::text()[2] - should return text2




/node/text()[1] - should return Text1
/node/text()[2] - should return text2

具有以下 XML:

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

如何选择第一个或 第二个文本节点通过 XPath?

使用 :

/node/text()

这将选择 XML 文档顶部元素(名为“ node”)的所有文本节点子节点。

/node/text()[1]

这将选择 XML 文档顶部元素(名为“ node”)的第一个文本节点子元素。

/node/text()[2]

这将选择 XML 文档顶部元素(名为“ node”)的第二个文本节点子元素。

/node/text()[someInteger]

这将选择 XML 文档顶部元素(名为“ node”)的 somInteger-th text-node 子元素。它等效于以下 XPath 表达式:

/node/text()[position() = someInteger]