具有以下 XML:
<node>Text1<subnode/>text2</node>
如何通过 XPath 选择第一个或第二个文本节点?
就像这样:
/node/text()[2]
当然不行,因为它是节点内每个文本的合并结果。
我已经在 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?
如何选择第一个或 第二个文本节点通过 XPath?
使用 强 > :
/node/text()
这将选择 XML 文档顶部元素(名为“ node”)的所有文本节点子节点。
/node/text()[1]
这将选择 XML 文档顶部元素(名为“ node”)的第一个文本节点子元素。
这将选择 XML 文档顶部元素(名为“ node”)的第二个文本节点子元素。
/node/text()[someInteger]
这将选择 XML 文档顶部元素(名为“ node”)的 somInteger-th text-node 子元素。它等效于以下 XPath 表达式:
/node/text()[position() = someInteger]