1

我需要处理评估 XPath 表达式的遗留代码,期望结果解析为 NodeList。该代码使用 NodeList 来确定 XPath 表达式选择了多少节点。The code proceeds only if one node is selected.

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

4

3 回答 3

1

有没有办法使用另一个 XPath 函数将 String 转换为 NodeList?

不,XPath 只是一种用于 XML 文档的查询语言——它不创建节点

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

或者,编写您自己的代码,使用 XPath 表达式的计算结果。

于 2012-01-27T14:27:49.623 回答
0

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

于 2012-01-27T10:55:03.007 回答
0

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

于 2012-01-27T13:23:26.403 回答