如何在XSL 1.0中设置拆分值

时间:2017-11-17 09:15:22

标签: xml xslt xslt-1.0 xslt-2.0

我需要在不同的参数中设置分割值。我的反应如下。

  `<Response >
     <Result>100002 0 Testing 1500.00 YES</Result>
  </Response>`

我需要的是在下面的不同结果中获得高于分割值。[请注意我有硬编码“select =”100002“”值]

          ` <xsl:element name="ns1:Response">
              <xsl:value-of select="100002">
           </xsl:element>`

     `<xsl:element name="ns1:amount">
              <xsl:value-of select="0 ">
           </xsl:element>`

    `<xsl:element name="ns1:name">
              <xsl:value-of select="Testing  ">
           </xsl:element>`

   `<xsl:element name="ns1:Amount">
              <xsl:value-of select="1500.00">
           </xsl:element>`

 `<xsl:element name="ns1:Other">
              <xsl:value-of select="Yes">
           </xsl:element>`

2 个答案:

答案 0 :(得分:0)

分裂功能已有很多主题。例如:Split implementation

这应该会帮助你。 请注意,您应该只需要一个如下所示的结果模板:

<xsl:template match="result">
    <xsl:call-template name="splitfunction">
        <xsl:with-param name="string" select="."/>
        <xsl:with-param name="seperator" select=" "/>
    </xsl:call:template>
</xsl:template>

答案 1 :(得分:0)

您可以使用

<xsl:template match="Result">
        <xsl:call-template name="abc">
            <xsl:with-param name="data" select="."></xsl:with-param>
        </xsl:call-template>
    </xsl:template>

        <xsl:template name="abc">
    <xsl:param name="data"/>
    <xsl:element name="ns1:Response">
        <xsl:value-of select="substring-before($data, ' ')"/>
    </xsl:element>

    <xsl:element name="ns1:amount">
        <xsl:value-of select="substring-before(substring-after($data, ' '), ' ')"/>
    </xsl:element>

    <xsl:element name="ns1:name">
        <xsl:value-of select="substring-before(substring-after(substring-after($data, ' '), ' '), ' ')"/>
    </xsl:element>

    <xsl:element name="ns1:Amount">
        <xsl:value-of select="substring-before(substring-after(substring-after(substring-after($data, ' '), ' '), ' '), ' ')"/>
    </xsl:element>

    <xsl:element name="ns1:Other">
        <xsl:value-of select="substring-after(substring-after(substring-after(substring-after($data, ' '), ' '), ' '), ' ')"/>
    </xsl:element>
</xsl:template>