Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 将字符串联接的结果类型转换为节点列表_Xml_String_Xpath_Jaxp_Nodelist - Fatal编程技术网

Xml 将字符串联接的结果类型转换为节点列表

Xml 将字符串联接的结果类型转换为节点列表,xml,string,xpath,jaxp,nodelist,Xml,String,Xpath,Jaxp,Nodelist,我需要处理对XPath表达式求值的遗留代码,希望结果解析为NodeList。代码使用NodeList来标识XPath表达式选择了多少个节点。仅当选择了一个节点时,代码才会继续 现在我需要使用字符串连接函数,返回类型为字符串。是否有任何方法可以使用另一个XPath函数将字符串转换为节点列表?理想情况下,它会将字符串转换为一个节点列表,其中一个元素的文本内容将是字符串值。我尝试了exsl:node-set(),但没有成功(Saxon-HE处理器)。XPath(甚至2.0)无法创建新节点,因为您需要X

我需要处理对XPath表达式求值的遗留代码,希望结果解析为NodeList。代码使用NodeList来标识XPath表达式选择了多少个节点。仅当选择了一个节点时,代码才会继续


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

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

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

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

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

有没有办法使用另一个XPath将字符串转换为节点列表 功能

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

如果旧代码希望XPath表达式的计算结果为节点列表,而XPath表达式的计算结果只是一个字符串,那么要在不编写新代码的情况下重用旧代码,必须更改XPath表达式,以便它选择一个或多个节点

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

有没有办法使用另一个XPath将字符串转换为节点列表 功能

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

如果旧代码希望XPath表达式的计算结果为节点列表,而XPath表达式的计算结果只是一个字符串,那么要在不编写新代码的情况下重用旧代码,必须更改XPath表达式,以便它选择一个或多个节点


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

您可以在问题的上下文中为我展示一些示例吗?如果您向我展示您的输入和所需的输出,我可以帮助您使用XSLT。我对JAXP不太熟悉,因此无法就此向您提供建议。Saxon附带了一个很好的文档,因此您可能希望从这里开始。它们从文档(包括不同类型的脚本)中读取,并使用JAXP(XPathFactory、XPath、XPathExpression等)进行评估。那么saxon:node-set()/exsl:node-set()呢?我需要Saxon EE来处理它们吗?exsl:node set获取一个结果树片段(无论如何,只能作为XSLT的结果获得,不能使用纯XPath)并将其转换为节点集。从基元值创建节点没有帮助。我理解。看来无论如何我都需要修改代码。我想先将XPath表达式作为节点列表进行计算,如果出现异常,我将尝试将其作为字符串进行计算。如果仍然存在异常,则表示XPath表达式本身存在问题,并将异常传播到相应的处理程序。请在问题的上下文中向我展示一些示例,好吗?如果您向我展示您的输入和所需的输出,我可以帮助您使用XSLT。我对JAXP不太熟悉,因此无法就此向您提供建议。Saxon附带了一个很好的文档,因此您可能希望从这里开始。它们从文档(包括不同类型的脚本)中读取,并使用JAXP(XPathFactory、XPath、XPathExpression等)进行评估。那么saxon:node-set()/exsl:node-set()呢?我需要Saxon EE来处理它们吗?exsl:node set获取一个结果树片段(无论如何,只能作为XSLT的结果获得,不能使用纯XPath)并将其转换为节点集。从基元值创建节点没有帮助。我理解。看来无论如何我都需要修改代码。我想先将XPath表达式作为节点列表进行计算,如果出现异常,我将尝试将其作为字符串进行计算。如果仍然存在异常,则意味着XPath表达式本身存在问题,并将异常传播到相应的处理程序。我想除了字符串连接函数之外,没有其他方法可以连接元素并返回节点列表,其中第一个元素是结果。否则,就会很尴尬。我将坚持修改代码,正如我在上一篇评论中所描述的。我想没有其他的字符串连接函数可以连接元素并返回节点列表,其中第一个元素是结果。否则,就会很尴尬。我将坚持修改代码,正如我在前面的评论中所描述的那样。