问题:
依据如下表格,利用XML Spy中grid窗格编辑出XML文件,并写出显示结果如表格样式的XSLT文件,在验证语法正确的前提下,截图语法及其显示结果。
姓名 | Java成绩 | Oracle成绩 | UML成绩 |
王宏 | 96 | 88 | 90 |
孙武 | 77 | 70 | 80 |
李娜 | 76 | 56 | 70 |
对应XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<XsltGrade>
<Student>
<姓名>王宏</姓名>
<Java成绩>96</Java成绩>
<Oracle成绩>88</Oracle成绩>
<UML成绩>90</UML成绩>
</Student>
<Student>
<姓名>孙武</姓名>
<Java成绩>77</Java成绩>
<Oracle成绩>70</Oracle成绩>
<UML成绩>80</UML成绩>
</Student>
<Student>
<姓名>李娜</姓名>
<Java成绩>76</Java成绩>
<Oracle成绩>56</Oracle成绩>
<UML成绩>70</UML成绩>
</Student>
</XsltGrad>
XLST Stylesheet v2.0创建的程序代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method = "xml" version = "1.0" encoding = "UTF-8" indent = "yes"/>
...
</xsl:stylesheet>
分析XML代码的格式,姓名、Java成绩、Oracle成绩、UML成绩均是Student下的元素,并运用Html的格式输出,可得Xslt文件格式:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method = "html" encoding = "gb2312"></xsl:output>
<xsl:template match = "/">
<html>
<head>
<title>XsltGrade</title>
</head>
<body>
<table border = "1">
<tbody>
<tr>
<th>姓名</th>
<th>Java成绩</th>
<th>Oracle成绩</th>
<th>UML成绩</th>
</tr>
<xsl:apply-templates select = "XsltGrade"/>
</tbody>
</table>
</body>
</html>
</xsl:template>
<xsl:template match = "XsltGrade">
<xsl:call-template name = "value">
<xsl:with-param name = "Student" select = "Student[1]"/>
</xsl:call-template>
<xsl:call-template name = "value">
<xsl:with-param name = "Student" select = "Student[2]"/>
</xsl:call-template>
<xsl:call-template name = "value">
<xsl:with-param name = "Student" select = "Student[3]"/>
</xsl:call-template>
</xsl:template>
<xsl:template name = "value">
<xsl:param name = "Student"/>
<tr>
<td><xsl:value-of select = "$Student/姓名"/></td>
<td><xsl:value-of select = "$Student/Java成绩"/></td>
<td><xsl:value-of select = "$Student/Oracle成绩"/></td>
<td><xsl:value-of select = "$Student/UML成绩"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
将Xslt文件通过Assign Xsl导入Xml文件中,使得原Xml文件中新增Xslt文件的引用(代码第二行):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="file:///C:/Users/dell/Desktop/XML%e5%ae%9e%e9%aa%8c5/Student2.xslt"?>
<XsltGrade>
<Student>
<姓名>王宏</姓名>
<Java成绩>96</Java成绩>
<Oracle成绩>88</Oracle成绩>
<UML成绩>90</UML成绩>
</Student>
<Student>
<姓名>孙武</姓名>
<Java成绩>77</Java成绩>
<Oracle成绩>70</Oracle成绩>
<UML成绩>80</UML成绩>
</Student>
<Student>
<姓名>李娜</姓名>
<Java成绩>76</Java成绩>
<Oracle成绩>56</Oracle成绩>
<UML成绩>70</UML成绩>
</Student>
</XsltGrade>
得到Html的表格形式:
![018ea76f0dd555ded16735d790bd587e.png](https://i-blog.csdnimg.cn/blog_migrate/33676ef3bc8ac78f8028f1d33e9939e2.png)