·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> XSL是一种转化思想用于将XML文档转化为可输出的文档

XSL是一种转化思想用于将XML文档转化为可输出的文档

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

1.XSL简要介绍:

XSL即可扩展的样式单语言,它比CSS样式单得功能更强。它的主要用途就是将XML文档转换成HTML格式的文件,然后再交付给浏览器,由浏览器显示转化的结果。

2.XSL主要组成:

第一部分是XSLT,即XSL Transformation转化XML文档,可以把XML文档从一种格式转化为令一种格式。它使用XPath匹配节点,把一个XML文档转换为另一个不同格式的文档。XSL的第二部分是XSL格式化对象(Formatting Object)。格式化对象提供了CSS的另一种方式来格式化XML文档,并把样式应用到XML文档上。因此,XSL在转换XML文档时分为明显的两个过程。首先转化 文档结构,其次将文档格式化输出。以下我们跟随(www.tyxrc.com )重点来学习一下XSTL的使用:

3.XSTL的使用:

我们知道XML是一种电脑程序间交换原始数据的简单而标准的方法。它的产生从更本上解决了应用系统间得信息交换。因为XML满足了以下两个基本的要求:

a:将数据和表达形式分离。

b: 在不同的应用之间传输数据。电子商务数据交换的与日俱增,使得这种需求越来越紧迫。

4.XSLT与CSS比较:

XSLT不适用在HTML中,而CSS可以适用在HTML中,XSLT是转换语言而CSS不是转化语言。

5.XPath简介:

XPath是XSLT的重要组成部分,是一种专门用来在XML文档中查找信息的语言。对XPath的一种比较容易理解的解释就是:如果将XML文档看作一个数据库,XPath就是SQL查询语言;如果将XML文档看成DOS目录结构,XPath就是cd,dir等目录操作命令的集合。

6.Internet Exporer MSXML 为了用XSL来处理一个XML文档,需要一个带有XSL引擎的XML解析器。

自从IE5.0版本开始,都已经携带XML解析器。目前流行得带有XSL引擎的XML处理器软件有以下几种:

a:微软的MSXML4 ,下载地址:http://www.microsoft.com/xml

b:Saxon 下载地址:http:www.wrox.com

c:IBM的XML for Java 软件包,名为LotusXSL 下载地址:www.alphworks.ibm.com/tech/xml4j

d:XT 下载地址:http://www.jclark.com/xml/xt.html

7.XSLT格式和使用

大家都知道不同的模具就可以生产出不同的零件,如果假设XML数据文档是钢水,XSLT就像是一个模具,使用XSLT就可以做出需要的“形状”,即符合不同需要的html文档。

看一个简单的XSLT示例:

要在XML中调用XSL样式单,应在XML文档中加入<?xml-stylesheet type=“text/xsl” href=“hello.xsl”?>语句,指明XML文档的转换XSL样式单。由于微软的IE内嵌了XML解析器,直接在IE浏览器中打开xml文件,就可以看到结果了。自己试一下吧。

hello.xml代码为:

<?xml version=“1.0” encoding=“utf-8”?>

<?xml-stylesheet type=“text/xsl” href=“hello.xsl”?>

<greeting>XSL----Important Step in learning XML!</greeting>

001.xsl代码为:

<?xml version=“1.0” encoding=“utf-8”?> //xsl文件本身就是一个XML文件,所以有和XML文件一样的声明方式。

<!DOCTYPE xsl:stylesheet [

<!ENTITY nbsp “ ”>

<!ENTITY copy “©”>

<!ENTITY reg “®”>

<!ENTITY trade “™”>

<!ENTITY mdash “—”>

<!ENTITY ldquo ““”>

<!ENTITY rdquo “””>

<!ENTITY pound “£”>

<!ENTITY yen “¥”>

<!ENTITY euro “€”>

]>

<xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”> //xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版样式,样式表就是由这些排版样式组合成的:xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”主要用于说明该XSL样式表是使用W3C所制定的XSL,设定值就是XSL规范所在的URL地址。stylesheet.temolate.for-each等关键字都是这个名称空间所定义的。

<xsl:output method=“html” encoding=“utf-8” doctype-public=“-//W3C//DTD XHTML 1.0 Transitional//EN” doctype-system=“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”/>

<xsl:template match=“/”>

<html xmlns=“http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”/>

<title>Untitled Document</title>

</head>

<body>

<p><xsl:value-of select=“greeting”/></p>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

8.XSL中的元素分析:

在以上的例子中你可以看到有如下代码:

<xsl:template match=“/”>

</xsl:template> 这里实际表示了XSL解析器对XML文档的处理过程,它从根节点开始,对XML文档进行遍历,并根据具体的代码从XML文档中取出相关的内容。

这里使用<xsl:value-of select=“greeting”/>语句来寻找特定的内容。如果在特定集合中可能存在多个书名元素,如果需要把他们一一列举出来进行处理,就需要使用语句<xsl:for-each select=“greeting”/>

以下是一个XML文档用XSL样式转化为HTML文档的例子:

001.xml文档代码:

<?xml version=“1.0” encoding=“utf-8”?>

<?xml-stylesheet type=“text/xsl” href=“002.xsl”?>

<shoppingCart>

<item>

<itemNo>1001</itemNo>

<itemName>三国演义</itemName>

<price>30.00</price>

<publisher>文艺出版社</publisher>

</item>

<item>

<itemNo>1002</itemNo>

<itemName>红楼梦</itemName>

<price>120.00</price>

<publisher>文艺出版社</publisher>

</item>

</shoppingCart>

002.xsl

<?xml version=“1.0” encoding=“utf-8”?><!DOCTYPE xsl:stylesheet [

<!ENTITY nbsp “ ”>

<!ENTITY copy “©”>

<!ENTITY reg “®”>

<!ENTITY trade “™”>

<!ENTITY mdash “—”>

<!ENTITY ldquo ““”>

<!ENTITY rdquo “””>

<!ENTITY pound “£”>

<!ENTITY yen “¥”>

<!ENTITY euro “€”>

]>

<xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>

<xsl:output method=“html” encoding=“utf-8” doctype-public=“-//W3C//DTD XHTML 1.0 Transitional//EN” doctype-system=“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”/>

<xsl:template match=“/”>

<html xmlns=“http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”/>

<title>网站购物车</title>

<style>

.title{font-size:15pt; font-weight:bold; color:blue}

.name{color:red}

</style>

</head>

<body>

<p class=“title”>Shooping Cart Contents</p>

<table width=“400” border=“1” cellpadding=“0” cellspacing=“0” bordercolor=“#6600CC”>

<thead>

<td align=“center”>编号</td>

<td align=“center”>书名</td>

<td align=“center”>价格</td>

<td align=“center”>出版社</td>

</thead>

<xsl:for-each select=“shoppingCart/item”>

<tr>

<td><xsl:value-of select=“itemNo”/></td>

<td><xsl:value-of select=“itemName”/></td>

<td><xsl:value-of select=“price”/></td>

<td><xsl:value-of select=“publisher”/></td>

</tr>

</xsl:for-each>

</table>

<p> </p>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

XSL实际上采用的是一种转化思想,它最终将XML文档转化为另一种可用于输出的文档。

文章来源:http://www.cnblogs.com/591aspx/archive/2