高手帮小弟我看看xsl的,如何调用第二个模板不对

高手帮我看看xsl的,怎么调用第二个模板不对
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="k1.xsl"?>
<学生信息>
<学生>
<姓名 >张三</姓名>
<年龄>22</年龄>
<身高>178</身高>
<邮箱>zhangsan@126.com</邮箱>
</学生>
<学生>
<姓名>李四</姓名>
<年龄>24</年龄>
<身高>172</身高>
<邮箱>kaka4922@163.com</邮箱>
</学生>
<学生>
<姓名>马五</姓名>
<年龄>20</年龄>
<身高>168</身高>
<邮箱>mawu@126.com</邮箱>
</学生>

</学生信息>



<?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> 
<h1>学生信息</h1>
<br>年龄不大于23岁的人的姓名,年龄和身高信息显示为红色</br>
<table border="1">
 
<xsl:apply-templates select="学生信息"/>
 
</table>
显示名称叫“张三”的人的姓名,年龄,身高和电子邮箱 
<table border="1">
<xsl:apply-templates select="//学生"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="学生信息/学生">
  <tr>
  <xsl:choose>
<xsl:when test="./年龄&lt;23"><font color="red">
<td> <font color="red"><xsl:value-of select="姓名"></xsl:value-of></font></td>
<td><font color="red"><xsl:value-of select="年龄"></xsl:value-of></font></td>
<td><font color="red"><xsl:value-of select="身高"></xsl:value-of></font></td>
</font>
</xsl:when>
<xsl:otherwise><font color="black">
<td> <xsl:value-of select="姓名"></xsl:value-of></td>
<td><xsl:value-of select="年龄"></xsl:value-of></td>
<td><xsl:value-of select="身高"></xsl:value-of></td></font>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
<xsl:template match="学生信息/学生/*">
<xsl:for-each select="学生信息/学生"> </xsl:for-each>
  
<tr>


  
  
  <td><xsl:value-of select="./姓名"/></td>
  <td><xsl:value-of select="./年龄" /></td>
  <td><xsl:value-of select="./身高" /></td>
  </tr>
 </xsl:template> 
</xsl:stylesheet>

------解决方案--------------------
<xsl:apply-templates select="//学生"/>

<xsl:template match="学生信息/学生">
是匹配的,而没有匹配到
<xsl:template match="学生信息/学生/*"> 

如果要设置不同的条件,可以通过with-param或call-template来实现