如何总结行中的元素编号

时间:2014-03-27 15:30:01

标签: xml xslt xslt-1.0

我有一个xml文件,我使用xsl转换为html

<?xml version="1.0"?>
<list>
    <student>
        <name>Tom</name>
        <class>1</class>
    </student>
    <student>
        <name>Jerry</name>
        <class>2</class>
    </student>
</list>

这是我的XSL文件,我显示信息&#34;姓名&#34;和#34; Class&#34;并显示&#34; Money&#34;与模板Money中的条件

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>

    <xsl:template match="/">
        <html>
            <head>
                <title>TomJerryXSL.xsl</title>
            </head>
            <body>
                <table border="1" >
                    <tr>
                        <td>Name</td>
                        <td>Class</td>
                        <td>Money</td>
                    </tr>

                    <xsl:for-each select="/list/student">
                        <tr>
                            <td><xsl:value-of select="./name"/></td>
                            <td><xsl:value-of select="./class"/></td>
                            <td>
                                <xsl:call-template name="money">
                                    <xsl:with-param name="class">
                                        <xsl:value-of select="./class"/>
                                    </xsl:with-param>
                                </xsl:call-template>
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>

    <xsl:template name="money">
        <xsl:param name="class"/>
        <xsl:choose>
            <xsl:when test="$class=1">
                <xsl:value-of select="100"/>
            </xsl:when>
            <xsl:when test="$class=2">
                <xsl:value-of select="200"/>
            </xsl:when>
        </xsl:choose>
    </xsl:template>

</xsl:stylesheet>

我想要节目总计300

Name    Class   Money
Tom         1    100
Jerry       2   200

如何汇总资金并以HTML格式显示 抱歉,因为我的英语不好

1 个答案:

答案 0 :(得分:0)

尝试类似:

<xsl:value-of select="100*count(/list/student/class[.='1']) + 200*count(/list/student/class[.='2'])"/>