这段代码有什么问题

时间:2010-02-06 12:21:53

标签: xslt

         

    <xsl:apply-templates select="xslTutorial"/>
</xsl:template>
<xsl:template match="xslTutorial">
<p>
        <xsl:for-each select="number">

        <xsl:value-of select="."/>+
        </xsl:for-each>
        =
        <xsl:value-of select="sum(number)"/>
</p>
</xsl:template>

 在结果中有一个“+”,我不希望它显示我希望结果 1 + 3 + 17 + 11 = 32 但结果是1 + 3 + 17 + 11 + = 32 我做了什么来阻止最后的+

2 个答案:

答案 0 :(得分:3)

您需要确保最后一次迭代不包含“+”:

<xsl:apply-templates select="xslTutorial"/>

<!--</xsl:template> was this a typo? -->

<xsl:template match="xslTutorial">
  <p>
    <xsl:for-each select="number">
      <xsl:value-of select="."/>
      <xsl:if test="position() != last()">+</xsl:if>
    </xsl:for-each>
    =
    <xsl:value-of select="sum(number)"/>
  </p>
</xsl:template>

答案 1 :(得分:0)

你没有任何可以阻止它发出“+”的逻辑。

这样的事情会起作用:

<xsl:template match="xslTutorial">
    <p>
        <xsl:for-each select="number">

            <xsl:value-of select="."/>
            <xsl:if test="not(position()=last())">+</xsl:if>
        </xsl:for-each>
        =
        <xsl:value-of select="sum(number)"/>
    </p>
</xsl:template>