什么是XSL?

作者:czxiyj 来源:czxiyj的blgo 时间:2007-11-05 19:47:00 

XSL(EXtensible Stylesheet Language)它是指可扩展样式表语言。 XSL之于 XML 就像 CSS 之于 HTML。说白了就是将XML中的数据用指定的显示格式输出.XML不像HTML,它不包含任何显示格式的信息. XSL 包含两个部分:  

  • XSLT – 用于转换 XML 文档的语言. XSLT 是指 XSL 转换 (XSL Transformation)

  • XPath – 用于在 XML 文档中导航的语言

XSL 语法

任何 XSL 文档的第一行实际上都是 XML 声明:


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

XSL 与 XML ?遵循相同的语法规则

在 XML 声明之后,就是 XSL 声明,例如:


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

XSL声明必须要有结束标签,上面的声明中还包含命名空间和 XSL 规范的版本。

什么是命名空间

它指定一组可以在特定文档中使用的元素名称和属性名称。命名空间的作用是避免命名冲突。由于 XML 和其它与 XML 相关的语言都是用户定义的,所以可能出现命名冲突。<table>可能是指一个布局或是一个座位。由于大多数应用程序同时处理多个 XML 文档,因此经常会有不同 XML 文档相混合的情况,而在这些文档中某个元素可能代表不同的含义。几个文档使用相同的命名空间可以确保元素在每个文档中代表相同含义。否则,就应该使用不同的命名空间确保元素代表不同的含义。

命名空间由文档声明中的 xmlns 属性指定,实际上就是网站的地址(例如 http://www.w3.org/1999/XSL/Transform)。其基本原理是 URI 具有唯一性,因此相应的命名空间也是唯一的。文档声明中的 URI 仅用作名称。

模板或规则

XSL 文档是由模板或规则构成,每个模板定义应用于特定 XML 节点的规则。XSL 模板如下所示:


<xsl:template match="/">......</xsl:template>

模板的作用是用来承载XML文档中的数据的,就像一个模具,如果这个模具是方形的,那么用这个模具做出来的模型也一定是方形的,而XML文档中的数据就是用来真充模具的原料。实际上在模板中可以嵌套子模板,但最上层模板必须将match设为"/"。

happyold.xml


<?xml version="1.0" encoding="GB2312"?>
<俱乐部>
<会员>    
<姓名>cnbruce </姓名>
<年龄>10 </年龄>
<性别>男 </性别>
<描述>他是一个糟糕的家伙!</描述>
</会员>
<会员>
<姓名>yufuzi</姓名>
<年龄>80 </年龄>
<性别>男 </性别>
<描述>他是一个优秀的男人!</描述>
</会员>
<会员>
<姓名>xiaojin</姓名>
<年龄>20 </年龄>
<性别>男 </性别>
<描述>他人品有问题!</描述>
</会员>
</俱乐部>


循环构造


<xsl:for-each select="...">......</xsl:for-each>

与典型的 for 循环作用相同。

标签:xsl,xml
0
投稿

猜你喜欢

  • javascript 操作符(~、&、|、^、<<、>>)使用案例

    2024-02-25 18:15:41
  • Python绘制散点密度图的三种方式详解

    2021-12-07 00:21:04
  • vue实现百度搜索功能

    2024-05-05 09:11:34
  • Python多进程并发与多线程并发编程实例总结

    2023-06-28 02:16:15
  • Python随机数模块详情

    2021-10-26 06:47:34
  • Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法

    2023-08-06 15:58:18
  • Python+Flask编写一个简单的行人检测API

    2023-09-26 17:55:19
  • 关于document.cookie的使用javascript

    2024-04-30 08:55:32
  • 对Python w和w+权限的区别详解

    2022-11-30 09:40:15
  • Pandas中的 transform()结合 groupby()用法示例详解

    2023-01-26 10:00:09
  • Zabbix 2.4.5自带MySQL监控的配置使用教程

    2024-01-24 06:00:52
  • Python算法输出1-9数组形成的结果为100的所有运算式

    2022-05-02 22:45:48
  • 从长尾理论和二八定律的比较去看用户体验

    2009-07-22 19:11:00
  • PHP入门基础之注释的写法

    2023-10-20 07:26:17
  • golang coroutine 的等待与死锁用法

    2024-04-30 10:03:34
  • Python定义一个Actor任务

    2022-05-30 09:24:50
  • ServerXMLHTTP的超时设置(setTimeouts)参数含义

    2009-02-12 12:51:00
  • innerHTML,outerHTML,innerText,outerText用法

    2008-02-15 12:22:00
  • 如何使用django的MTV开发模式返回一个网页

    2023-07-04 21:47:06
  • 利用python实现全屏爱心雨向喜欢的人表白

    2022-05-29 22:32:14
  • asp之家 网络编程 m.aspxhome.com