读取XSLT2.0中的服务响应(json格式)
需要读取xslt中的服务响应,其格式为: servicedata={“statusCode”:200,“loginMessage”:“欢迎用户”} 它的键值对,在这里我可以得到'servicedata'的值,但还需要得到一些条件检查的状态代码值 将2.0版用于xslt 阅读一些建议在3.0版xslt中使用parse-json()、json-to-xml的问题,但没有帮助读取XSLT2.0中的服务响应(json格式),xslt,xpath,xslt-2.0,Xslt,Xpath,Xslt 2.0,需要读取xslt中的服务响应,其格式为: servicedata={“statusCode”:200,“loginMessage”:“欢迎用户”} 它的键值对,在这里我可以得到'servicedata'的值,但还需要得到一些条件检查的状态代码值 将2.0版用于xslt 阅读一些建议在3.0版xslt中使用parse-json()、json-to-xml的问题,但没有帮助 问题:首先,仅使用2.0版,我可以检索“statusCode”的值,如果没有,我可以指导如何实现它。如果您可以移动到Saxon
问题:首先,仅使用2.0版,我可以检索“statusCode”的值,如果没有,我可以指导如何实现它。如果您可以移动到Saxon 9.7,那么您可以使用
json to xml
,例如:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
exclude-result-prefixes="xs math"
version="3.0">
<xsl:template match="data">
<xsl:value-of select="json-to-xml(substring-after(., 'servicedata='))//*[@key = 'statusCode']" xpath-default-namespace="http://www.w3.org/2005/xpath-functions"/>
</xsl:template>
</xsl:stylesheet>
哪一个用于输入
<data>servicedata={"statusCode":200,"loginMessage":"Welcome User"}</data>
servicedata={“statusCode”:200,“loginMessage”:“欢迎用户”}
输出200
我还没有检查Saxon 9的早期版本是否也支持这一点。那么,您到底使用哪种XSLT 2.0处理器?如果是Altova或Saxon的最新版本,那么使用您提到的功能应该是可能的,并且应该会有所帮助。@MartinHonnen我正在使用Saxon HE 9.5I已转换为Saxon 9.7He,现在在maven clean安装后,我收到net.sf.Saxon.value.SingletonItem的错误,这个类在9.7中被弃用了吗?我能够从命令行运行我发布的代码,在Saxon 9.7中,他在Oxygen 19内部和Oxygen外部都运行得很好。您在运行Saxon 9.7时有问题吗,还是仅仅在使用我建议的代码时有问题?无论如何,如果问题与使用Java运行Saxon有关,那么最好发布一个新问题,解释并显示代码的所有细节,并为Saxon标记问题,以便Saxonica/Michael Kay能够提供帮助。在Saxon 9.7中,我们的项目(9.5)中未找到net.sf.Saxon.value.SingletonItem类。因此,我在9.5中搜索net.sf.saxon.value.SingletonItem的替代类,正如我所说的,如果在升级到当前版本时将saxon API与Java结合使用是一个问题,那么最好在Stackoverflow上或直接在他们的帮助论坛中作为一个单独的问题标记Java和saxon,我相信你会从他们那里得到建议。