正如标题所说,我无法将计算结果变成可以重复使用的变量。 这是我的XSLT的一个例子:
<tr>
<xsl:for-each select="student">
<td><xsl:value-of select="student_id"/></td>
<td><xsl:value-of select="sname"/></td>
<td><xsl:value-of select="fname"/></td>
<td><xsl:value-of select="score1"/></td>
<td><xsl:value-of select="score2"/></td>
<td><xsl:value-of select="score3"/></td>
<td><xsl:variable name="total"/>
<xsl:value-of select="score1 + score2 + score3"/></td>
<xsl:choose>
<xsl:when test="total < 50">
<td><xsl:text>N</xsl:text></td>
</xsl:when>
<xsl:when test="total >= 50 and total < 60">
<td><xsl:text>C</xsl:text></td>
</xsl:when>
<xsl:when test="total >= 60 and total < 70">
<td><xsl:text>CR</xsl:text></td>
</xsl:when>
<xsl:when test="total >= 70 and total < 80">
<td><xsl:text>D</xsl:text></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:text>HD</xsl:text></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
xsl:choose的结果为我提供了所有不正确的HD。
这是XML
的一部分<student>
<student_id>16390227</student_id>
<sname>Battle</sname>
<fname>Gillian</fname>
<results>
<score1>12</score1>
<score2>13</score2>
<score3>26</score3>
</results>
</student>
<student>
<student_id>16280515</student_id>
<sname>Britt</sname>
<fname>Kelly</fname>
<results>
<score1>15</score1>
<score2>19</score2>
<score3>29</score3>
</results>
</student>
<student>
<student_id>16620827</student_id>
<sname>Walker</sname>
<fname>Kevyn</fname>
<results>
<score1>6</score1>
<score2>13</score2>
<score3>27</score3>
</results>
</student>
<student>
<student_id>16290814</student_id>
<sname>Wallace</sname>
<fname>Melodie</fname>
<results>
<score1>12</score1>
<score2>26</score2>
<score3>36</score3>
</results>
</student>
这是我加载到mozilla时的预期输出
ID sname fname score1 score2 score3 total grades
12 13 26 51 C
15 19 29 63 CR
6 13 27 46 N
12 26 36 74 D