通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>XML专区>>正文 新版上线![旧版]
注:打开慢时请稍等

CSS与XSL简述

http://www.iyit.net  日期:2006-5-24 12:05:30  来源:整理转载   点击:
参加讨论】    我们非常清楚的是在XML中内容与表现形式是分开的。这就使得不同的用户可以根据他们自己的需要来定义数据的表现形式。在一个XML的源文件中并没有关于它表现形式的信息。这一点我们可以从下面例子中看出。

例一:在HTML中的一段代码

<H1>Car Register</H1>

<H2>Make: Saab 9000 </H2>

<H2>Model: 1995</H2>

<H2>Owner:</H2>

<p>Kalle Karlsson

  G?tgatan 1

11111 Stockholm

</p>

这是一段典型的HTML代码。在每一个tag(标签)中都含有表现形式的信息,而关于tag之间联系和结构信息却没有了。这事实上约束了HTML的发展。

例二:在XML中的一段代码

<Car Register>

<Car>

<Registration Number>ABC123 </Registration Number>

<Make>Saab 9000</Make>

<Model>1995 </Model>

<Owner>

<Name>Kalle Karlsson </Name>

<Address>G?tgatan 1 </Address>

<Zip code>11111 </Zip code>

<City>Stockholm </City>

</Owner>

</Car>

</Car Register>

在XML文件之中tag中的信息是非常纯的。它没有表现部分。所以说有人称XML为传输知识的语言。

 

那么XML文件是怎样表现的呢?

XML文件的所有表现信息多发放在了stylesheet(样式表)文件当中。stylesheet文件全权负责XML源文件的表现形式。所以说如果一个XML源文件对应不同的stylesheet文件它就会有不同的表现形式. 有了stylesheet文件我们可以对文件表现型始终的大小,颜色,空白作特定的规定。

 

在这篇文章中我们要来讨论的CSS(Cascading Style Sheets 层叠样式表)和XSL(XML Style Language 可扩展类型语言)就是两种stylesheet(样式表)语言。大家会想为什么会同时有两种语言。这不是重复了吗?其实它们是互相补充,各有特色的。CSS可以展现HTML 和XML文件,而XSL可以展现XML和Transformation(转型语言)。由此可见它们各有所长。

 

我们还是来看看例子吧:

例三:一段CSS代码

H1 {

font-size: 12pt;

font-weight: bold;

color: blue;

}

它规定了H1元素的字体大小,种类和颜色。当然CSS能做到的远不只这些。还有比如行距,空白大小等等。

 

下面我们来看一个CSS结合XML源文件的例子。

例四:一段XML源文件

<?XML:stylesheet type="text/css" href="bach.css"?>

ARTICLE

<HEADLINE>Fredrick the Great meets Bach</HEADLINE>

<AUTHOR>Johann Nikolaus Forke</AUTHOR>

<PARA>

One evening, just as he was getting his

<INSTRUMENT>flute</INSTRUMENT>ready and his

musicians were assembled, an officer brought him a list of

the strangers who had arrived.

</PARA>

</ARTICLE>

例五:一段XSL代码,名为bach.css

INSTRUMENT {display: inline}

ARTICLE, HEADLINE, AUTHOR, PARA {display: block}

HEADLINE {font-size: 1.3em}

AUTHOR {font-style: italic}

ARTICLE, HEADLINE, AUTHOR, PARA {margin: 0.5em}

CSS中头两行规定了INSTRUMENT元素是实体的,而ARTICLE, HEADLINE, AUTHOR, PARA元素是虚体的。第三至第五行规定了HEADLINE元素的字体大小,AUTHOR元素是意大利字体,ARTICLE, HEADLINE, AUTHOR, PARA元素间空白有0.5em宽 在例四第一行,XML文件指明了它的stylesheet文件的类型与位置。这样CSS结合到了XML源文件上。

 

但CSS与XSL相比,它有着一些不足。CSS适用于那些元素顺序不变的文件。对于那些需要经常按不同元素排序的文件,我们还是要用XSL。

 

XSL是怎样工作的呢?

XSL处理器把XML源文件通过XSL检验后产生一个HTML表现文件。这样XML源文件就在网络浏览器上有了表现。其实最终的目标并不只是产生HTML文件,而是可以各种各样的文件,比如Txt, Rtf. XML源文件中也有类似例四中的一行,

比如是<?xml-stylesheet type="text/xsl" href="www.book.com/s1.xsl">用以指明了它的stylesheet文件的类型与位置。每一个XSL文件都包含了template rules(匹配模板规则)的集合。template rules包含有两个部分:Patterns和Actions。

Patterns用以指出这个规则适用于那一个元素,Actions指出这个元素以及它的子元素要怎样展现。这样一来XML源文件中的结构树就被转换成了一个flow objects(流程产物)树。

让我们再来看一个例子吧。

例六:一段XSL代码。

<?xml version="1.0">

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

<BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:9.5pt;background-color:#FEEEEE">

<xsl:for-each select="portfolio/stock">

<DIV STYLE="background-color:teal; color:white; padding:4px">

<SPAN STYLE="font-weight:bold; color:white">

<xsl:value-of select="name"/></SPAN>

-<xsl:value-of select="price"/>

</DIV>

<DIV STYLE="margin-left:10px; margin-bottom:1em; font-size:9pt">

<xsl:value-of select="description"/>

<SPAN STYLE="font-style:italic">

(change:<xsl:value-of select="change"/>

</SPAN>

</DIV>

</xsl:for-each>

</BODY>

</HTML>

第二行是指明文件中标识的集合,又叫做Namespace(名域)。这可以使得同名标识不会冲突。

值得一体的是,文件中还用到了选择语句(for-each select)在XML树结构中进行选择。

相信大家读它不会遇到什么困难。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:XML文件的显示——CSS和XSL
下一篇:XML与其相关技术
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
WML Script标准函数库
WML Script脚本程序设计(二)
WML Script脚本程序设计(一)
WML Script语法基础
WML编程
CGI测试
CGI教程-ErrorDocument 指令
CGI教程-解码数据发送给CGI脚本
跟我学Perl
Perl教学 Perl5的包和模块
Perl教学 Perl的面向对象编程
Perl教学 Perl5中的引用(指针)
Perl教学 格式化输出
Perl教学 关联数组(哈希表)
Perl教学 子程序
WML Script标准函数库
WML Script脚本程序设计(二)
WML Script脚本程序设计(一)
WML Script语法基础
WML编程
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
QQ珊瑚虫外挂4.0版本发布!
WEB服务器配置全攻略(三)
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
内存混插常见问题和解决方法
Office2007简体中文版浮出水面 美图抢
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息