XML文件的显示——CSS和XSL(2)

来源:ccidnet.com 时间:2007-10-15 18:48:00 



■用XSL来表现XML

XSL(可扩展样式语言)也是一种显示XML文件的规范。和CSS不同的是:XSL是遵循XML的规范来制定的。也就是说,XSL文件本身符合XML的语法规定。XSL在排版样式的功能上要比CSS强大。比如:CSS适用于那些元素顺序不变的文件,它不能改变XML文件中元素的顺序——元素在XML文件中是什么顺序排列的,那么通过CSS表现出来顺序不能改变。对于那些需要经常按不同元素排序的文件,我们就要用XSL。

XSL是怎样工作的呢?XML文件在展开后是一种树状结构,称为“原始树”,XSL处理器(现在只有IE 5支持XSL,在IE 5中的处理器叫:XSL Stylesheet Processor)从这个树状结构读取信息,根据XSL样式的指示对这个“原始树”进行排序、复制、过滤、删除、选择、运算等操作后产生另外一个“结果树”,然后在“结果树”中加入一些新的显示控制信息,如表格、其他文字、图形以及一些有关显示格式的信息。XSL处理器根据XSL样式表的指示读取XML文件中的信息,然后再重新组合后转换产生一个Well-Formed 的HTML文件。浏览器显示HTML文件肯定是没问题的,这样,XML文件中的信息就会以一定的形式显示在我们面前了。


图2

同样,我们先来看一个XSL的例子,再来分析它的结构和语法。XML源文件和XSL源文件如例2所示,显示效果如图3。可以看到,要想XML文件使用XSL来表现,在XML文件前面要加上一句:〈?xml-stylesheet href="URL" type="text/xsl" ?〉,和引用CSS是一样的,只不过是指定type="text/xsl"。

看看XSL文件,可以发现XSL文件的结构和XML文件的结构是一样的,因为XSL的规则是根据XML的规则制定的。一个XSL文件也必须是Well-Foemed的,因为XSL文件中所用的标记都是W3C定义好的。所以,XSL文件就不需要DTD了。另外,可以看到在XSL文件中可以插入一些HTML的标记,来帮助XML文件的显示,这些HTML的标记也必须是Well-Formed的,例如:必须要有正确的结束标记(不能像在HTML文件中那样可以偷懒了)。

XSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有:〈xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl〉。

其中,xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版样式,样式表就是由这些排版样式组合成的;xmlns:xsl="http://www.w3.org/TR/WD-xsl"这一句主要用来说明该XSL样式表是使用W3C所制定的XSL,设定值就是XSL规范所在的URL地址。

标签:xml,xsl,css
0
投稿

猜你喜欢

  • MySQL系列多表连接查询92及99语法示例详解教程

    2024-01-21 03:05:33
  • Pycharm报错Non-zero exit code (2)的完美解决方案

    2023-12-04 13:57:52
  • PyTorch中model.zero_grad()和optimizer.zero_grad()用法

    2023-09-15 20:13:57
  • PyQt5 关于Qt Designer的初步应用和打包过程详解

    2023-07-31 20:26:32
  • ASP中的全角和半角之间的转化

    2008-06-06 13:34:00
  • MybatisPlus如何处理Mysql的json类型

    2024-01-27 14:23:19
  • sql 查询慢的原因分析

    2024-01-16 13:11:29
  • python缺失值填充方法示例代码

    2023-06-28 12:23:24
  • python 模拟银行转账功能过程详解

    2021-07-16 02:49:15
  • 如何利用node实现发送QQ邮箱验证码

    2024-05-11 09:49:15
  • 微信小程序利用Canvas绘制图片和竖排文字详解

    2023-08-20 02:35:43
  • MyBatis实现MySQL批量插入的示例代码

    2024-01-14 01:48:23
  • Python实现消消乐小游戏

    2021-02-19 19:37:42
  • asp如何将RGB颜色转化成到16进制的?

    2009-11-26 20:41:00
  • Linux下PhpMyAdmin程序目录结构的安全管理

    2023-10-18 14:16:05
  • 利用Python自制一个批量图片水印添加器

    2023-12-31 15:47:55
  • Go语言入门exec的基本使用示例

    2024-04-25 13:16:33
  • javascript实现多栏闭合展开式广告位菜单效果实例

    2024-04-29 14:07:44
  • 游戏开发Unity2D图片任意形状破碎裂片效果展示

    2022-01-18 04:43:15
  • sqlserver 增删改查一些不常用的小技巧

    2024-01-24 06:49:59
  • asp之家 网络编程 m.aspxhome.com