【发布时间】:2012-04-11 05:44:23
【问题描述】:
我正在编写一个 XSLT 脚本,它会生成如下所示的 HTML 输出:
Alice 0
Bob Maths 74
Science 84
Mary Maths 80
Science 90
History 95
Mark Maths 70
Tim 0
我想为每个学生添加一个总单元格,表格应该像
Alice Total 0
Bob Maths 74
Science 84
Total 158
Mary Maths 80
Science 90
History 95
Total 265
Mark Maths 70
Total 70
Tim Total 0
<currentRow>
<columnValue>alice</columnValue>
<columnValue><null/></columnValue>
<columnValue>0</columnValue>
</currentRow>
<currentRow>
<columnValue>bob</columnValue>
<columnValue>maths</columnValue>
<columnValue>74</columnValue>
</currentRow>
<currentRow>
<columnValue>bob</columnValue>
<columnValue>science</columnValue>
<columnValue>84</columnValue>
</currentRow>
<currentRow>
<columnValue>mary</columnValue>
<columnValue>maths</columnValue>
<columnValue>80</columnValue>
</currentRow>
<currentRow>
<columnValue>mary</columnValue>
<columnValue>science</columnValue>
<columnValue>90</columnValue>
</currentRow>
<currentRow>
<columnValue>mary</columnValue>
<columnValue>history</columnValue>
<columnValue>95</columnValue>
</currentRow>
<currentRow>
<columnValue>mark</columnValue>
<columnValue>maths</columnValue>
<columnValue>70</columnValue>
</currentRow>
<currentRow>
<columnValue>tim</columnValue>
<columnValue><null/></columnValue>
<columnValue>0</columnValue>
</currentRow>
这是我的xml结构
XSLT 为每一行运行 for-each,如下所示:
<xsl:for-each select="//wrs:currentRow">
<xsl:variable name="theCurrentStudent">
<xsl:value-of select="wrs:columnValue[1]"/>
</xsl:variable>
<xsl:element name="tr">
<xsl:if test="not(preceding-sibling::wrs:currentRow/wrs:columnValue[1]=$theCurrentStudent)">
<xsl:element name="td">
<xsl:attribute name="rowspan">
<xsl:value-of select="count(//wrs:currentRow[wrs:columnValue[1]=$theCurrentStudent])"/>
</xsl:attribute>
<xsl:value-of select="$theCurrentStudent"/>
</xsl:element>
</xsl:if>
<xsl:element name="td">
<xsl:value-of select="wrs:columnValue[2]"/>
</xsl:element>
<xsl:element name="td">
<xsl:value-of select="wrs:columnValue[3]">
<xsl:element name="tr">
<xsl:value-of select="sum(wrs:columnValue[3])"/>
</xsl:element>
</xsl:value-of>
</xsl:element>
</xsl:element>
</xsl:for-each>
除了脚本中的所有内容之外,还有什么想法可以在 XSLT 脚本中执行此操作吗?
【问题讨论】:
-
您能发布您的 XSLT 和示例 XML 输入吗?