我已经完成了一项任务,其中包括根据等级过滤名称,但标签ID一直让我失望。如果我删除有问题的ID,我可以得到理想的结果,但我认为它已被放在那里是有原因的。
我的XML是学生详细信息列表,文件扩展名为.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<CLASS ID = "AWD">
<STUDENT>
<NAME>Tom</NAME>
<AGE>19</AGE>
<HEIGHT>1.3</HEIGHT>
<SEX>M</SEX>
<GRADE>B</GRADE>
</STUDENT>
<STUDENT>
<NAME>Dick</NAME>
<AGE>29</AGE>
<HEIGHT>1.1</HEIGHT>
<SEX>M</SEX>
<GRADE>A</GRADE>
</STUDENT>
<STUDENT>
<NAME>Harry</NAME>
<AGE>39</AGE>
<HEIGHT>1.5</HEIGHT>
<SEX>M</SEX>
<GRADE>C</GRADE>
</STUDENT>
<STUDENT>
<NAME>Mary</NAME>
<AGE>30</AGE>
<HEIGHT>1.1</HEIGHT>
<SEX>F</SEX>
<GRADE>A</GRADE>
</STUDENT>
<STUDENT>
<NAME>Tim</NAME>
<AGE>23</AGE>
<HEIGHT>1.5</HEIGHT>
<SEX>M</SEX>
<GRADE>A</GRADE>
</STUDENT>
</CLASS>
我的XSLT代码(.xslt
文件扩展名)是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Student List
</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Name
</th>
<th style="text-align:left">Age
</th>
</tr>
<xsl:for-each select="CLASS/STUDENT">
<tr>
<xsl:if test="GRADE = 'A'">
<td>
<xsl:value-of select="NAME"/>
</td>
<td>
<xsl:value-of select="AGE"/>
</td>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我认为问题很可能出在这一行,但我已经尝试将ID包含在代码中并且没有解决问题。
<xsl:for-each select="CLASS/STUDENT">