将string-join的结果类型转换为NodeList

时间:2012-01-27 10:14:25

标签: xml string xpath jaxp nodelist

我需要处理评估XPath表达式的遗留代码,期望结果解析为NodeList。该代码使用NodeList来标识XPath表达式选择的节点数。只有在选择了一个节点时,代码才会继续。

现在我需要使用string-join函数,返回类型是String。有没有办法使用另一个XPath函数将String转换为NodeList?理想情况下,它会将String转换为NodeList,其中一个元素的文本内容将是String值。我尝试使用exsl:node-set()但没有成功(Saxon-HE处理器)。

3 个答案:

答案 0 :(得分:1)

  

有没有办法使用另一个XPath将String转换为NodeList   功能

不,XPath只是XML文档的查询语言 - 它不会创建节点

如果遗留代码期望XPath表达式计算到NodeList并且评估结果的XPath表达式只是一个字符串,那么要重用该遗留代码而不编写新代码,则必须更改XPath表达式,以便它选择一个或多个节点。

或者,编写自己的代码,使用XPath表达式的评估结果。

答案 1 :(得分:0)

XPath(甚至2.0)无法创建新节点,因为您需要XQuery或XSLT。 Saxon支持两者,因此您可以选择。

答案 2 :(得分:0)

我建议在Saxon XPath API周围放置一个Java层,并在此Java层中进行字符串到NodeList的转换。您的Java层可以实现JAXP XPath接口,从而“假装”成为真正的XPath引擎。