凌寒飘香

____成风破浪会有时,直把云帆济沧海!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::
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" ?>
&ltxsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40">
&ltxsl:template>
&ltxsl:apply-templates/>
</xsl:template>
&ltxsl:template match="/">
&ltHTML>
&ltHEAD>
&ltTITLE>学生花名册</TITLE>
&ltSTYLE> .title{font-size:15pt; font-weight:bold; color:blue } .name{color:red} </STYLE>
</HEAD>
&ltBODY>
&ltp class="title" >学生花名册</p>
&ltxsl:apply-templates select="学生花名册"/>
</BODY>
</HTML>
</xsl:template>
&ltxsl:template match="学生花名册">
&ltTABLE BORDER="1">
&ltTHEAD>
&ltTD> &ltB>姓名 </TD>
&ltTD> &ltB>籍贯 </TD>
&ltTD> &ltB>年龄 </TD>
&ltTD> &ltB>电话 </TD>
</THEAD>
&ltxsl:for-each select="学生" order-by="姓名">
&ltTR>
&ltTD>&ltB>&ltxsl:value-of select="姓名"/></TD>
&ltTD>&ltxsl:value-of select="籍贯"/></TD>
&ltTD>&ltxsl:value-of select="年龄"/></TD>
&ltTD>&ltxsl:value-of select = "电话"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
posted on 2006-09-07 17:15  凌寒飘香  阅读(528)  评论(0编辑  收藏  举报