XSLT中百分比属性的总和值

时间:2014-07-15 03:06:29

标签: xslt-2.0

我试图对width属性的值求和,但它只是将它们的值连接起来

这是我的代码

XSLT

<xsl:template match="//table">
    <xsl:variable name="numb" type="xs:integer*">
        <xsl:for-each select="tr/td[@width]">
            <xsl:value-of select="number(translate(@width,'%',''))"/>
        </xsl:for-each>
    </xsl:variable>
    <p>
        <xsl:value-of select="sum($numb)"/>
    </p>
</xsl:template>

XML

<table>
    <tr>
        <td width="100%"><p>x</p>
        </td>
        <td width="20%"><p>x</p></td>
    </tr>
</table>

我得到的结果为:10020

1 个答案:

答案 0 :(得分:1)

假设您需要XSLT 2.0

<xsl:template match="table">
  <p>
    <xsl:value-of select="sum(tr/td[@width]/number(translate(@width, '%', '')))"/>
  </p>
</xsl:template>