XML和XSLT技术在Web应用中的研究
2011-11-15台雯
台 雯
XML和XSLT技术在Web应用中的研究
台 雯
(天津市新华职工大学,天津市 300040)
XML和XSLT相结合的技术应用在Web应用程序设计中,具有无可比拟的优势和广阔的发展前景。文章主要介绍了XML技术和XSLT技术,并通过实例介绍了XML和XSLT技术相结合在Web应用中的方法。
Web应用;XML;XSLT
一、引言
最初出现的Web应用,只是一些静态的HTML页面,人们已远远不能满足,人们需要在网上查询信息、在线学习、网上办公、网上购物等,这就迫切需要具有交互、动态功能的Web应用,于是出现了CGI、JSP、ASP等多种动态Web技术。但是,这些技术并不能实现内容和表现形式相分离,程序员在开发过程中需要编写所有的代码,系统的开发周期较长,系统的可扩展性、可移植性和可维护性较差。因此,如何提高开发效率、降低成本、实现系统的跨平台性已成为当前Web应用领域亟待解决的问题。随着XML和相关标准的出现,基于XML的Web应用逐渐被人们所广泛使用。
二、XML和XSLT技术
(一)XML简介
XML(Extensible Markup Language,可扩展标识语言),它是由 W3C组织于1998年2月发布的一个标准。XML与 HTML(Hyper Text Markup Language,超文本标记语言)一样都是由SGML(Standard Generalized Markup Language,标准通用的标记语言)衍生而来的,是SGML的一个子集,XML弥补了HTML语法过于简单不能表现复杂形式的缺点,它具有更好的灵活性和伸缩性,而且使用起来也不复杂[1]。
XML现在被广泛的应用,因为它具有如下主要特点[1][2]:
1.XML有很好的可扩展性。与HTML不同,XML的标签不是预先定义的,而是允许使用者根据需要定义自己的标记集。
2.XML支持内容和表现形式相分离。在XML中,数据内容和显示样式是分别存放的,显示样存放在样式表中,如果需要改变数据内容的显示方式,只要修改样式表就可以了,而不需修改数据文件。基于XML的Web应用程序,在搜索数据时可以高效的搜索相关标记下的内容,而不必遍历整个XML文档。
3.XML有很好的平台无关性。XML可以在不同的平台和系统的之间进行信息交流。
4.XML非常易于处理。XML有非常严格的定义格式,定义格式具有层次性,并且它的标准是与厂商无关的,因此可以使用任何一种解析器来进行处理。
(二)XSLT简介
XSLT(Extensible Stylesheet Language Transformations,可扩展样式表转换语言)它是由 W3C组织于1999年11月16日发布的一个标准,它是XSL(Extensible Stylesheet Language,可扩展样式表语言)规范的一部分。XSL是用来为XML文档设计显示样式的技术,它包括XSLT、XPath、XSL FO三部分。
XSLT是用来将XML文档转换成HTML、XML或其他格式文档的语言;XPath是用于在XML文档中进行定位的语言,XSLT使用XPath在XML文档中查找信息[3]。
XSLT的转换过程(如图1所示):将XML文档作为源文档,然后使用编写好的XSLT转换样式表(转换模板),将它转换成为目标文档(XML、HTML、C程序等文件)。
图1 XSLT转换过程
三、XML和XSLT技术的应用示例
XML和XSLT技术在Web中的应用,也就是数据内容可以利用XML文档来存储,页面显示样式利用XSLT文档来描写,实现了页面的数据内容与表现形式相分离。在XML文档中,调用XSLT样式表可以通过编写相应语句来完成。在XSLT文档中,网页的基础结构可以使用HTML标签来完成,对于XML文档中相应数据的调用可以通过XPath来完成。
下面,通过一个示例来说明XML和XSLT技术在Web中应用的方法:
1.编写XML文档。
首先,需要创建XML文档,XML文档可以自己编写也可以通过数据库自动生成。本例编写的XML文档book.xml的代码如下所示:
<?xml version="1.0"encoding="gb2312"?>
<bookshop>
<book>
<name>建党伟业</name>
<author>黄亚洲</author>
<publisher>红旗出版社</publisher>
<time>2011-6-1</time>
<price>¥50.00</price>
</book>
<book>
<name>山海经密码</name>
<author>阿菩</author>
<publisher>凤凰出版社</publisher>
<time>2011-6-1</time>
<price>¥46.00</price>
</book>
.
.
.
</bookshop>
在XML文档中,第一行是XML的说明,从第二行开始是自定义的标记内容。
2.编写XSLT文档。
图2 显示效果
为了显示XML文档中的数据,接下来需要定义相应的显示样式XSLT文档。例如book.xsl的代码如下所示:
<?xml version="1.0"encoding="gb2312"?>
<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>图书信息</h2>
<xsl:for-each select="bookshop/book">
<div style=";padding:10px;color:white;font-weight:bold;background-color:blue">
<xsl:value-of select="name"/>
</div>
<div style=";font-size:10pt;margin-left:30px;margin-bottom:1em">
<table border="0">
<tr> <td> <xsl:value-of select="author"/> </td> </tr>
<tr> <td> <xsl:value-of select="publisher"/> </td> </tr>
<tr> <td> <xsl:value-of select="time"/> </td> </tr>
<tr> <td> <xsl:value-of select="price"/> </td> </tr>
</table>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在XSLT文档中,以“<xsl:>”开头的是XSLT语句,“select”属性中的内容就是Xpath表达式。
3.显示XML数据内容。
最后,在book.xml的顶部加入<?xml-stylesheet type="text/xsl"href="book.xsl"?>,用来在XML文档中引用XSLT文档。
在浏览器(IE5.0以上)中就可以显示出结果页面了,如图2所示。
[1]张弛.基于XML/XSLT的 Web站点生成器设计[D].西安建筑科技大学硕士学位论文,2004.
[2]成光.基于XML/XSLT的动态网页自动生成系统研究与实现[D].苏州大学硕士学位论文,2006.
[3]李浩光.基于XML/XSLT信息发布系统的设计与实现[J].软件设计开发,2009,(03).
Application Study on XML and XSLT Technology for Web
TAI Wen
(Tianjin Xinhua Staff and Workers University,Tianjin300040 China)
It has unparalleled advantages and broad prospects for development to apply the technology of combining XML and XSLT to the Web applications program design.This article introduces XML and XSLT technology and their combining methods through the examples.
web application;XML;XSLT
TP393
A
1673-582X(2011)11-0084-04
2011-09-02
台雯(1980-),女,天津市人,硕士,天津市新华职工大学教师,讲师,主要从事“计算机应用技术”的研究。