王朝网络
分享
 
 
 

关于XSL的说明

王朝other·作者佚名  2006-12-16
宽屏版  字体: |||超大  

首先需要说明一点的是,目前只有 IE 5.5(以及它更高的版本)支持对XSL的解析。

不管技术和程序本身内含的技术是什么,对于用户而言,重要的是程序能够做什么。用户甚至不关心你采用的什么技术,所以在许多情况下,用户希望软件能够向他们显示用XML编码的信息。但是,XML标记并没有提示如何在显示屏或页面上显示信息。

XML实际上是通过对内容做标记来描述其意义,从而使显示与内容相分离。目前,针对XML样式表开发的标准被称为可扩展样式表语言(Extensible Stylesheet Language),即XSL。XSL定义了XML的语法规范,该语法规范将被用来把XML文件转换成HTML、XML或其他格式的文档。一个XSL样式表集合了一系列设计规则,用于从XML文件中抽取信息,并将其转换成HTML等其他格式。这种转换采用了公开的方式,使其能够更加方便地被程序员描述。而且XSL还将提供多种脚本语言的通道,以满足更为复杂的应用需求。

XSL能使Web浏览器直接根据用户的不同需求改变文档的显示法。例如,不需要与服务器进行交互通信,就可以改变数据的显示顺序。通过变换样式表,同一个文档可以显示得更大,或者经过折叠,只显示外面的一层,或者变为打印格式。比如为了方便残疾人阅读,样式表可以将XML译为盲文或可听见的语音,这项功能还给想在汽车里冲浪的人带来了好处:因为将页面转换为语音是非常方便。有几种Web浏览器的最新版本都能阅读XML文档,并采用合适的样式表,在屏幕上对信息进行分类和格式化。基于XML的网站除了运行速度更快、更易使用外,读者可能根本不知道他所看到的是XML文档而不是HTML文档。

XSL本身是一项XML应用。它直接架构在XML语法之上,分为两个部分:第一部分负责将XML的源代码转换为另一种XSLT格式;第二部分提供大量的格式化命令,可用来配合印刷或屏幕显示,精确地设定外观样式格式XSL-FO,这是一种独立于设备的格式。第一部分的转换语法可以用来服务于第二部分。

事实上,XSL的转换语法并不限于将XML转换成FO命令,XSL可以输出任何格式正确的XML文档。因为这个特性,我们可以用它来进行以下几种格式的转换:XML->HTML、XML->XML、XML->SVG以及XML->VRML等。

同时需要注意的是,XML样式语言还正在发展之中。正如XML介于HTML和SGML之间一样,XML的样式表语言XSL标准也介于CSS和DSSSL之间。

XSL在网络中的应用大体分为两种模式:

1.服务器端转换模式: 在这种模式下,XML文件下载到浏览器前先转换成HTML,然后再将HTML文件送往客户端进行浏览。有两种方式:

· 动态方式;即当服务器接到转换请求时再进行实时转换,这种方式对服务器要求较高。如果你的服务器性能较差的话,很可能造成系统拥挤现象。

· 批量方式;事先用XSL将一批XML转换成HTML文件,然后服务器接收到请求后调用转换好的HTML文件即可。实际上就是每天定时或系统空闲的时候在后台做转换,就象饭店每天事先作好的冷盘一样。

2.客户端转换模式: 这种方式是将XML和XSL文件都传送到客户端,由浏览器实时转换。前提是浏览器必须支持XML+XSL。当前流行的浏览器IE和NETSCAPE都支持XML+XSL。

前面已经提到,XSL是由两种方式构成,一种方式用来转换XML文本内容,另一种则是格式化XML文本内容。我们可以通过XSL首先转换(过滤和整理)XML数据内容,然后通过XSL的格式化显示方法定义数据内容显示方式(比如字体、大小、颜色等)。当然实际上也可以定义一个可以被浏览器支持的用来显示转换后的XML数据的方式,目前来讲这种方式往往是转换XML元素为HTML元素。

同时,XSL也可以加入或者移除一些元素到输出文件,也可以重新整理排列这些元素,并且决定哪些元素将要被显示和如何被显示。

写程序的人都知道,理论说的再多,不如一个实例有效,好,现在我们就来举一个例子,说明XSL在XML中的应用。

一个简单的XSL文档分析

首先我们先生成一个XML文档,把它命令为nickmean.xml

<?xml version="1.0" encoding="GB2312"?>

<?xml-stylesheet href="nickmean.xsl" type="text/xsl"?>

<网络用语集合>

<词语>

<名称>美眉</名称>

<含义>表示在网络上横行的漂亮女孩子</含义>

</词语>

<词语>

<名称>恐龙</名称>

<含义>表示在网络上寻找另一个自我的表面张力和比例结构不友好的女孩子</含义>

</词语>

</网络用语集合>

||||||编写一个XSL文档来决定该XML文档的显示格式(该文档名称为nickmean.xsl,也就是上面例子中<?xml-stylesheet href="nickmean.xsl" type="text/xsl"?>这一行指定的href的值),如下:

<?xml version="1.0" encoding="GB2312"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<html>

<body>

<xsl:apply-templates select="//网络用语集合/词语"/>

</body>

</html>

</xsl:template>

<xsl:template match="//网络用语集合/词语">

<DIV STYLE="color:blue">

<xsl:value-of select="名称"/>

</DIV>

<DIV STYLE="color:black">

<xsl:value-of select="含义"/>

</DIV>

</xsl:template>

</xsl:stylesheet>

在IE5.5浏览器中的显示结果如下:

如果我们希望以表格的形式显示结果的话,其XSL文档代码如下(当然该文档也需要命名为nickmean.xsl):

<?xml version="1.0" encoding="GB2312"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<html>

<body>

<xsl:apply-templates select="网络用语集合" />

</body>

</html>

</xsl:template>

<xsl:template match="网络用语集合">

<table Border="1">

<xsl:for-each select="词语">

<tr>

<td><xsl:value-of select="名称"/></td>

<td><xsl:value-of select="含义"/></td>

</tr>

</xsl:for-each>

</table>

</xsl:template>

</xsl:stylesheet>

其显示结果如下:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有