在xslt 2.0中读取服务响应(json格式)

时间:2017-04-17 11:23:28

标签: xslt xpath xslt-2.0

需要在xslt中读取服务响应,格式为:

  

servicedata = {" statusCode":200," loginMessage":" Welcome User"}

它的键值对,我可以获得' servicedata'的价值。但还需要获取某些条件检查的状态代码值。

使用版本2.0 for xslt

阅读几个问题,建议使用parse-json(),json-to-xml和3.0版本的xslt,但没有帮助。

问题:首先使用版本2.0只能检索' statusCode'的值。以及如果不指导我如何实现它。

1 个答案:

答案 0 :(得分:1)

如果您可以转到Saxon 9.7 HE,那么您可以使用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>

输出200

我还没有检查Saxon 9的早期版本是否也支持它。