XSLT解析JSON字符串

来源:互联网 发布:奢侈品活动策划 知乎 编辑:程序博客网 时间:2024/06/08 17:07

         这两天呗XSL类问题搞的焦头烂额,不过总是解决了问题。

给定一个JSON串怎么进行对其解析呢?串如下:

<Logic>[{"TriggerVal":"10001510","TargetItemNo":"1879","targetCRFNo":null,"targetPageNo":null,"TargetItemDivId":null,"FromCRFNo":null},{"TriggerVal":"10001510","TargetItemNo":"1880","targetCRFNo":null,"targetPageNo":null,"TargetItemDivId":null,"FromCRFNo":null},{"TriggerVal":"10001510","TargetItemNo":"1881","targetCRFNo":null,"targetPageNo":null,"TargetItemDivId":null,"FromCRFNo":null}]</Logic>

        我的目的是将TriggerVal和TargetItemNo的值取出来,进行处理。根据以上串的形式我们可以发现,先按找{,然后

再找‘“’与’:‘当我们想要得到TargetItemNo的值,再找到','即可。至于怎么用XSLT找,主要是使用substring-before和substring-after两个函数进行切割,并且递归的调用模板函数(Choice),我们直接上代码,很简单。

<xsl:template name="Choice" xml:space="preserve"><xsl:param name="logic"/><xsl:param name="node"/><xsl:variable name="StatusBRACE" select="substring-after($logic,'{')"/><xsl:variable name="StatusQUOBefore" select="substring-after($StatusBRACE,'"')"/><xsl:variable name="StatusQUOAfter" select="substring-before($StatusQUOBefore,'"')"/><xsl:variable name="StatusCOLON" select="substring-after($StatusQUOBefore,':')"/><xsl:variable name="StatusQUOBefore2" select="substring-after($StatusCOLON,'"')"/><xsl:variable name="StatusQUOAfter2" select="substring-before($StatusQUOBefore2,'"')"/><xsl:variable name="TargetBRACE" select="substring-after($StatusQUOBefore2,',')"/><xsl:variable name="TargetQUOBefore" select="substring-after($TargetBRACE,'"')"/><xsl:variable name="TargetQUOAfter" select="substring-before($TargetQUOBefore,'"')"/><xsl:variable name="TargetCOLON" select="substring-after($TargetQUOBefore,':')"/><xsl:variable name="TargetQUOBefore2" select="substring-after($TargetCOLON,'"')"/><xsl:variable name="TargetQUOAfter2" select="substring-before($TargetQUOBefore2,'"')"/><xsl:if test="substring-after($TargetQUOBefore2, '{') != ''">      <xsl:call-template name="Choice">      <xsl:with-param name="logic" select="$TargetQUOBefore2" />      </xsl:call-template>    </xsl:if></xsl:template>

       至于中间怎么对数据处理,这里我就不再叙述了


原创粉丝点击