XPath:select文本节点

拥有以下XML:

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

如何通过XPathselect第一个或第二个文本节点?

像这样的东西:

 /node/text()[2] 

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

拥有以下XML:

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

如何通过XPathselect第一个或第二个文本节点?

用途

 /node/text() 

这将selectXML文档的顶层元素(名为“节点”)的所有文本节点子元素。

 /node/text()[1] 

这将selectXML文档的顶层元素(名为“节点”)的第一个文本节点子元素。

 /node/text()[2] 

这将selectXML文档的顶层元素(名为“节点”)的第二个文本节点子元素。

 /node/text()[someInteger] 

这将selectXML文档顶部元素(名为“node”)的someInteger-th文本节点子元素。 它相当于以下XPathexpression式:

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

你的xpath应该可以工作。 我已经在MarkLogic和Zorba Xquery / Xpath实现中testing了你的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