XSLT:如何在我的 table 中不包含具有特定元素的结果?

XSLT: How to not include results with a specific element in my table?

我正在尝试删除 table 中包含 <absent> 元素的任何结果。

XML:

 <classTest>
  <testDetails>
     <description>Class Test</description>
     <totalMarks>40</totalMarks>
  </testDetails>
  <results>
    <student num="1008"><result>1</result><absent/></student>
    <student num="1009"><result>23</result></student>
    <student num="1007"><result>3</result></student>
    <student num="1028"><result>0</result><absent/></student>
    ...
  </results>    
</classTest>

XSL:

<xsl:template match="classTest">
  <html>
  <body>
  <table border="1">
    <tr>
      <td><xsl:text>Total number of students</xsl:text></td>
      <td><xsl:value-of select="count(/classTest/results/student)"/></td>
    </tr>
    <tr>
      <td><xsl:text>Total number of students absent</xsl:text></td>
      <td><xsl:value-of select="count(/classTest/results/student/absent)"/></td>
    </tr>
    <tr>
      <th style="width: 300px; text-align:center">Student number</th>
      <th style="width: 150px; text-align:center">Mark</th>
    </tr>
    <xsl:for-each select="results/student">        
      <xsl:sort select="@num" order="descending"/>        
      <tr>
        <td><xsl:value-of select="@num"/></td>        
        <xsl:choose>
          <xsl:when test="result &lt; 20">
            <td style="color:rgb(255, 0, 0);"><xsl:number value="result"/></td>
          </xsl:when>  
          <xsl:otherwise>
            <td><xsl:number value="result"/></td>
          </xsl:otherwise>
        </xsl:choose>
      </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

我尝试使用不包含检查、when 和 if 语句,但我似乎无法删除缺席学生的任何结果。我需要在我的 table 中包含 <absent> 元素,因为我需要将缺勤学生总数作为 SUM,但是在我将它们加在一起之后,我不需要将它们包含在我的 [=26] 中=].我需要做什么来解决这个问题?

完成后应该是这样的: Result

而不是:

<xsl:for-each select="results/student">      

尝试:

<xsl:for-each select="results/student[not(absent)]">