ASP 显示学生成绩表
本练习的目的是,创建一个学生成绩表,用XSLT文件转换XML文件,实现XML文件的HTML页面显示功能。
(1)创建一个命名为l的XML页面,用来实现用户注册信息的填写。左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【XML】,单击【创建】按钮。
(2)左键单击【文件】|【保存】命令,弹出另存为对话框。在对话框的【文件名】中输入studentxml,【保存类型】的下拉列表框中选择“ALL Documents”,单击【保存(S)】按钮。
(3)在XML文件中输入以下代码并保存。
类似黑兽
<?xml version="1.0" encoding="gb2312" ?>
<?xml:stylesheet type="text/xsl" href="student.xsl" ?>
<roster>
<student ID="s101">
<name>李华</name>
<x>男</x>
<birthday>1978.9.12</birthday>
<score>92</score>
<skill>Java</skill>
<skill>Oracle</skill>
<skill>C Sharp</skill>
<skill>SQL Server</skill>
</student>
<student ID="s102">
<name>倪冰</name>
<x>女</x>
<birthday>1979.1.12</birthday>
<score>89</score>
<skill>Visual Basic</skill>
<skill>SQL Server</skill>
<skill>ASP</skill>
</student>
<student ID="s103">
<name>张君宝</name>
<x>男</x>
<birthday>1982.9.9</birthday>
<score>100</score>
<skill>C Sharp</skill>
<skill>SQL Server</skill>
生命安全与救援 <skill>UML</skill>
</student>
<student ID="s104">
<name>杨惠</name>
<x>女</x>
<birthday>1980.5.16</birthday>
<score>85</score>
<skill>Visual C++</skill>
<skill>SQL Server</skill>
<skill>UML</skill>
</student>
<student ID="s105">
<name>崔春晓</name>
<x>男</x>
<birthday>1981.4.19</birthday>
<score>86</score>
<skill>UML</skill>
<skill>C Sharp</skill>
<skill>XML</skill>
<skill>SQL Server</skill>
</student>
<student ID="s106">
<name>王动</name>
<x>男</x>
<birthday>1981.4.19</birthday>
<score>59</score>
最新贷款利率 <skill>UML</skill>
<skill>C Sharp</skill>
头像男生动漫可爱
<skill>XML</skill>
<skill>SQL Server</skill>
</student>
<student ID="s107">
<name>李寻欢</name>
<x>男</x>
花落人亡两不知
<birthday>1981.4.19</birthday>
<score>58</score>
<skill>UML</skill>
<skill>C Sharp</skill>
<skill>XML</skill>
<skill>SQL Server</skill>
</student>
</roster>
(4)创建一个命名为student.xsl的XSLT页面,用来实现用户注册信息的填写。左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【XSLT整页】,单击【创建】按钮。
(5)左键单击【文件】|【保存】命令,弹出另存为对话框。在对话框的【文件名】中输入student.xsl,【保存类型】的下拉列表框中选择“ALL Documents”,单击【保存(S)】按钮。
(6)在XSLT文件中输入以下代码并保存。
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="www.w3/1999/XSL/Transform">
<xsl:template match="/">
<title>学生成绩单</title>
<h2 align="center">学生成绩单</h2>
<table border="1" cellpadding="0" align="center">
<tr align="center">
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>生日</td>
<td>成绩</td>
<td>评价</td>
</tr>
<xsl:for-each lect="roster/student">
<xsl:sort lect="score" order="descending" data-type="number"/><tr>
<xsl:if test="@ID mod 2=0">
<xsl:attribute name="bgcolor">#6666FF</xsl:attribute>
</xsl:if>
<td>
<xsl:value-of lect="@ID"/>
</td><td><font>
<xsl:if test="x='女'">
<xsl:attribute name="color">blue</xsl:attribute>
</xsl:if>
<xsl:value-of lect="name"/>
</font></td><td>
<xsl:value-of lect="x"/>
</td><td>
<xsl:value-of lect="birthday"/>
</td><td>
<xsl:value-of lect="score"/>
</td><td>
<xsl:choo>
<xsl:when test="score < 60 ">不及格</xsl:when>
<xsl:when test="score < 80 ">一般</xsl:when>
<xsl:when test="score > 90 ">优秀</xsl:when>摄影人体模特
<xsl:otherwi>良好</xsl:otherwi>
</xsl:choo>
</td></tr>
</xsl:for-each>
<xsl:variable name="vsum">
<xsl:value-of lect="sum(roster/student/score)"/>
</xsl:variable>
<xsl:variable name="vcount">
<xsl:value-of lect="count(roster/student)"/>
</xsl:variable>
<tr>
<td colspan="4" align="center">总分</td>
<td>
<xsl:value-of lect="$vsum"/>
</td></tr>
柳色青
<tr><td colspan="4" align="center">总人数</td><td>
<xsl:value-of lect="$vcount"/>
</td></tr>
戴尔笔记本重装系统 <tr><td colspan="4" align="center">平均分</td><td>
<xsl:value-of lect="round($vsum div $vcount*10) div 10"/>
</td></tr></table><hr/>
<div align="center">
60分以下共<B>
<xsl:value-of lect="count(roster/student[score<60])"/>
</B>人<br/>
85(包含)以上女生共<B>
<xsl:value-of lect="count(roster/student[(score>85 or score=85) and x='女'])"/></B>人
</div>
</xsl:template>
</xsl:stylesheet>
(7)在浏览器中打开l文件,如图6-10所示。
图6-10 执行结果