XSL(eXtensible Style Languge)是描述XML文件样式信息的一种语言,是由W3C制定的。
我们知道,XML的一个优点就是形式与内容相分离,这使得XML文件具有简洁、易读的特点。它的样式信息都包含在称之为样式单的样式文件中,而XSL就是它的两种样式单的其中之一。另一种是已经运用在HTML中的层叠式样式单CSS,是一种静态的样式描述格式,本身不遵从XML的语法规范。而XSL就不同了,它本身就是一个XML文件,因此系统可以使用同一个XML解释器对XML文档及其相关的XSL文件进行解释处理。
XSL由两部分组成,一部分是XSLT和XPATH,这部分定义了如何将一个XML文件转换为其它的可供显示或打印的文件格式。另一部分是FO,为转换后文件中的各个对象定义语义和显示方式。这两部分的发展已经不同步,前一部分已经成为标准,而后一部分还存在较大的争议,尚在讨论之中。现在一般所说的XSL大都指的是XSLT。
使用XSL显示XML的基本思想是通过定义模板将XML源文件转换为带样式信息的可浏览文件。模板可以是HTML格式、带CSS的XML格式及FO格式。
XSL最初是由Microsoft公司提出来的,因此它对XSL的支持也比较好,IE5就已经支持XSL。
在XML中使用如下语句声明XSL样式单:
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
二.一个XSL例子
在这里举一个学生花名册的例子,用于说明XSL的转换过程。XML原代码如下:
<?xml version="1.0" encoding="GB2312" ?>
<?xml-stylesheet type="text/xsl" href="学生.xsl"?>
<学生花名册 xmlns: 学生="学生.dtd" >
<学生>
<姓名> 李华 < /姓名>
<籍贯> 河北 < /籍贯>
<年龄> 14 < /年龄>
<电话> 62875555 < /电话>
< /学生>
<学生>
<姓名> 张三 < /姓名>
<籍贯> 北京 < /籍贯>
<年龄> 14 < /年龄>
<电话> 62875555 < /电话>
< /学生>
下面是XSL源代码:
<?xml version= 1.0 Encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40">
<xsl:template>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>学生花名册</TITLE>
<STYLE> .title{font-size:15pt; font-weight:bold; color:blue } .name{color:red} </STYLE>
</HEAD>
<BODY>
<p class="title" >学生花名册</p>
<xsl:apply-templates select="学生花名册"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="学生花名册">
<TABLE BORDER="1">
<THEAD>
<TD> <B>姓名 </TD>
<TD> <B>籍贯 </TD>
<TD> <B>年龄 </TD>
<TD> <B>电话 </TD>
</THEAD>
<xsl:for-each select="学生" order-by="姓名">
<TR>
<TD><B><xsl:value-of select="姓名"/></TD>
<TD><xsl:value-of select="籍贯"/></TD>
<TD><xsl:value-of select="年龄"/></TD>
<TD><xsl:value-of select = "电话"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>