xsl样式表学习

xsl样式表学习

XSL指扩展样式表语言(Extensible Stylesheet Language)

万维网联盟开始发展样式表的起因是由于对基于XML的样式表语言的需求

XSLT指XSL转换。XSLT可以将XML文档转换为其他文档,比如XHTML

XSLT参考手册

XSLT元素https://www.w3school.com.cn/xsl/xsl_w3celementref.asp

对所有来自 W3C 标准的 XSLT 元素进行了描述,以及关于浏览器支持的信息。

XSLT函数https://www.w3school.com.cn/xsl/xsl_functions.asp

XSLT包含了超过100个内置函数。这些函数可以用于字符串、数值、日期和时间比较、节点和QName(QName是一个XML中)的概念,表示一个有命名空间的节点的名称。处理、序列处理、逻辑值等等。

内容目录

XSL语言

详细解释XSL的子语言:XSLT、XPath、XSL-FO。

起始于 XSL

XSL 指扩展样式表语言(EXtensible Stylesheet Language)。

万维网联盟 (W3C) 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。

CSS = HTML 样式表

HTML 使用预先定义的标签,标签的意义很容易被理解。

HTML 元素中的

元素定义表格 - 并且浏览器清楚如何显示它。

向 HTML 元素添加样式是很容易的。通过 CSS,很容易告知浏览器用特定的字体或颜色显示一个元素。

XSL = XML 样式表XML 不使用预先定义的标签(我们可以使用任何喜欢的标签名),并且这些标签的意义并不都那么容易被理解。

元素意味着一个 HTML 表格,一件家具,或是别的什么东西 - 浏览器不清楚如何显示它。

XSL 可描述如何来显示 XML 文档!

XSL - 不仅仅是样式表语言XSL 包括三部分:

XSLT

一种用于转换 XML 文档的语言。

XPath

一种用于在 XML 文档中导航的语言。

XSL-FO

一种用于格式化 XML 文档的语言。

XPath 是一种用于在 XML 文档中进行导航的语言。

学习之前,您需要具备的基础知识:

在您继续学习之前,需要对以下知识有基本的了解:

XSLT简介XSLT 的简介。包括其概念和作用。

XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。

XPath 是一种用于在 XML 文档中进行导航的语言。

HTML / XHTML

XML / XML 命名空间

XPath

如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。

什么是XSLT什么是 XSLT?

XSLT 指 XSL 转换(XSL Transformations)。

XSLT 是 XSL 中最重要的部分。

XSLT 可将一种 XML 文档转换为另外一种 XML 文档。

XSLT 使用 XPath 在 XML 文档中进行导航。

XPath 是一个 W3C 标准。

XSLT = XSL 转换XSLT 是 XSL 中最重要的部分。

XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。

通过 XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。

描述转化过程的一种通常的说法是,XSLT 把 XML 源树转换为 XML 结果树。

XSLT 使用 XPathXSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。

如果您希望首先学习 XPath,请访问我们的 XPath 教程。

XSLT如何工作在转换过程中,XSLT使用XPath来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到XSLT就会把源文档的匹配部分转换为结果文档。

XSLT是W3C标准XSLT 在 1999 年 11 月 16 日被确立为 W3C 标准。

如需更多有关 W3C 的 XSLT 活动的信息,请访问我们的 W3C 教程。

XSLT 浏览器支持XSLT的浏览器总论

几乎所有主要的浏览器均支持 XML 和 XSLT。

感觉这些都是古早浏览器时代的浏览器

新的应该也支持吧

XSLT 转换如何使用 XSLT 将 XML 文档转换为 XHTML 文档。

实例研究:如何使用 XSLT 将 XML 转换为 XHTML。

正确的样式表声明把文档声明为 XSL 样式表的根元素是 xsl:stylesheet 或 xsl:transform。

注释: xsl:stylesheet 和 xsl:transform 是完全同义的,均可被使用!

根据 W3C 的 XSLT 标准,声明 XSL 样式表的正确方法是:

或者

如需访问 XSLT 的元素、属性以及特性,我们必须在文档顶端声明 XSLT 命名空间。

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向了官方的 W3C XSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。

从一个原始的 XML 文档开始我们现在要把下面这个 XML 文档("cdcatalog.xml")转换为 XHTML:

Empire Burlesque

Bob Dylan

USA

Columbia

10.90

1985

.

.

.

在 Internet Explorer 和 Firefox 中查看 XML 文件:

打开 XML 文件(通常通过点击某个链接) - XML 文档会以颜色化的代码方式来显示根元素及子元素。点击元素左侧的加号或减号可展开或收缩元素的结构。如需查看原始的XML源文件(不带有加号和减号),请在浏览器菜单中选择“查看页面源代码”。

创建 XSL 样式表然后创建一个带有转换模板的 XSL 样式表("cdcatalog.xsl"):

My CD Collection

Title Artiest ok ok

我们讲一下这个table标记对里的东西:

:定义一个表格,并设置边框为1。

:定义一个表格行,并设置背景颜色为"#9acd32"。

:定义一个表头单元格,并设置内容为"Title",并将内容左对齐。

:定义一个表头单元格,并设置内容为"Artist",并将内容左对齐。

:对XML文档中的每个"catalog/cd"节点执行循环。

:定义一个表格行。

:定义一个数据单元格,并设置内容为当前"catalog/cd"节点下的"title"元素的值。

:结束表格行的定义。

:结束循环。

Title

Artist

:结束表格的定义。

我们会在下一节对本例的细节进行解释。

XSLT xsl:template 元素

xsl:template 元素包含了当指定的节点被匹配时所能应用的规则.

XSL 样式表由一个或多套被称为模板(template)的规则组成。

每个模板含有当某个指定的节点被匹配时所应用的规则。

xsl:template 元素

xsl:template 元素用于构建模板。

match属性用于关联XML元素和模板。match属性也可以用来为震哥哥文档定义模板。match属性的值是XPath表达式(举例,match="/"定义整个文档)

好了,让我们看一下上一节中的 XSL 文件的简化版本:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

My CD Collection

Title Artist
. .

代码解释:

由于 XSL 样式表本身也是一个 XML 文档,因此它总是由 XML 声明起始:

下一个元素,xsl:stylesheet,定义此文档是一个 XSLT 样式表文档(连同版本号和 XSLT 命名空间属性)。

xsl:template 元素定义了一个模板。而 match="/" 属性则把此模板与 XML 源文档的根相联系。

xsl:template 元素内部的内容定义了写到输出结果的 HTML 代码。

最后两行定义了模板的结尾,及样式表的结尾。

XSLT xsl:value-of 元素

xsl:value-of 元素可提取选定节点的值。

xsl:value-of用于提取某个选定节点的值,并把值添加到转换的输出流中

select 属性的值是一个XPath表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

XSLT xsl:for-each 元素

xsl:for-each 元素允许您在 XSL 中进行循环。

xsl:for-each 元素可用于选取指定的节点集中的每个xml元素

结果过滤

通过在 xsl:for-each 元素中添加一个选择属性的判别式,我们也可以过滤从 XML 文件输出的结果。

合法的过滤运算符:

1,=(等于)

2,!=(不等于)

3,<(xiaoyu)

4, >(dayu)

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

My CD Collection

Title Artist

XSLT xsl:sort 元素

xsl:sort 元素用于对输出进行排序。

xsl:sort 元素用于对结果进行排序。

在何处放置排序信息

如需对结果进行排序,只要简单地在 XSL 文件中的 xsl:for-each 元素内部添加一个 xsl:sort 元素:

用法:

** **

XSLT xsl:if 元素

xsl:if 元素用于针对 XML 文件的内容放置一个条件测试。

如需放置针对 XML 文件内容的条件测试,请向 XSL 文档添加 xsl:if 元素。

用法:

注释:必选的 test 属性的值包含了需要求值的表达式。

上面的代码仅仅会输出价格高于 10 的 CD 的 title 和 artist 元素。

上面的转换结果类似这样:

语法

XSLT xsl:choose 元素

xsl:choose 元素被用来与 xsl:when 和 xsl:otherwise 配合使用,来表达多重的条件检验。

XSLT xsl:apply-templates 元素

xsl:apply-templates 元素可把模板规则应用到当前节点或者当前元素的子节点。

客户端的 XSL

如何在客户端将 XML 文档转换为 XHTML 文档。

服务器端的XSL

如何在服务器端将 XML 文档转换为 XHTML 文档。

📚 相关推荐

【实用】储蓄卡遗失啦?挂失换卡全攻略看这里!
Mysteel解读:红枣or棉花成本增加背景下 种植意愿谁更胜一筹
100Parents:如何做好父母
阿根廷黄金一代最大遗珠:伊瓜因错失欧冠、世界杯与美洲杯的传奇
巴西世界杯举办城市:玛瑙斯
去香港买手表指南大全(香港买表如何避免陷阱?)