XML, XSL, XSLT, XPath 简介
2009-04-08 14:51
363 查看
XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。XSL 实际上包含两个部分:
* XSLT – 用于转换 XML 文档的语言
* XPath – 用于在 XML 文档中导航的语言
XSLT 是指 XSL 转换 (XSL Transformation),它是 XSL 最重要的部分。
XSLT 可以将 XML 文档转换为其它 XML 文档、XHTML 输出或简单的文本。这通常是通过将每个 XML 元素转换为 HTML 元素来完成的。由于 XML 标签是用户定义的,浏览器不知道如何解释或呈现每个标签,因此必须使用 XSL。XML 标签的意义是为了方便用户(而不是计算机)理解。
XSLT 还可以对 XML 树进行下列操作:
* 添加和删除元素
* 添加和删除属性
* 对元素进行重新排列或排序
* 隐藏或显示某些元素
* 查找或选择特定元素
XSL 语法
您可能还记得 XML 概述文章中提到过,所有 XML 文档都是以 XML 声明开头。XSL 样式表也是一样。任何 XSL 文档的第一行实际上都是 XML 声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
XSL 是否与 XML 相同?
既是又不是。说是,是因为它们遵循相同的语法规则(只有少许差异,下面我将会讲到)。说不是,是因为它们的用途不同:XML 用于承载数据,而 XSL 则用于设置数据的格式。
在 XML 声明之后,就是 XSL 声明,例如:
<xsl:stylesheet>
或
<xsl:transform>
但是,在大多数实际情况下,XSL 声明看起来要稍微复杂一些:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
这是因为,根据 W3C 联盟的建议,它还包含命名空间和 XSL 规范的版本。
XSL 声明与 XML 声明的不同之处在于,XML 声明只写一行,而且没有结束标签,而 XSL 声明必须包含结束标签,该标签表示 XSL 样式表结束:
</xsl:stylesheet>
请注意,这并不与 XML 语法规则冲突:XSL 样式表是完全有效的 XML 文档,因为它有一个根元素,由 <xsl:stylesheet> 标签指定。
在什么情况下应该使用 XSL?
XSL 在设计时有几个目标用途,这些用途使它成为某些开发情况下的完美解决方案,而对另一些开发情况则毫无用处。
XSL 专门用于处理 XML 文档,并且遵循 XML 语法。因此,它只能在支持 XML 的应用程序中与 XML 结合使用。最合适使用 XML 和 XSL 的情况是:Web 门户、新闻聚合器、社区网站或其它任何需要向各种设备及大量客户端提供信息的 Web 应用程序。
XSLT 是一种基于模式匹配的语言。它会查找匹配特定条件的节点,然后应用相应的规则。因此,它不具备大多数编程语言的计算能力。例如,XSL 无法在运行时更改变量的值。它不应该用于从使用复杂公式的动态数据源(例如在线商店)来计算值。Web 编程语言更适于此用途。
XSL 不能代替或补充 CSS。它不应(也不能)用于设置 HTML 的样式。但是,您可以将其用于需要频繁重新设计可视化效果、频繁更换布局以及以灵活格式处理数据的网站。
XSL 不是内容管理工具。它不应(也不能)用于更改 XML 文档的内容或者编辑信息。但是,您可以将 XML 和 XSL 用于需要处理几种不同格式文档的内容管理系统。
它起始于 XSL,结束于 XSLT、XPath 以及 XSL-FO。
起始于 XSL
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。
万维网联盟 (W3C) 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。
CSS = HTML 样式表
HTML 使用预先定义的标签,标签的意义很容易被理解。
HTML 元素中的
元素定义表格 - 并且浏览器清楚如何显示它。
XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。
XPath 是一种用于在 XML 文档中进行导航的语言。
什么是 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 使用 XPath
XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。
它如何工作?
在转换过程中,XSLT 使用 XPath 来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到,XSLT 就会把源文档的匹配部分转换为结果文档。
XSLT 是 W3C 标准
XSLT 在 1999 年 11 月 16 日被确立为 W3C 标准。
* XSLT – 用于转换 XML 文档的语言
* XPath – 用于在 XML 文档中导航的语言
XSLT 是指 XSL 转换 (XSL Transformation),它是 XSL 最重要的部分。
XSLT 可以将 XML 文档转换为其它 XML 文档、XHTML 输出或简单的文本。这通常是通过将每个 XML 元素转换为 HTML 元素来完成的。由于 XML 标签是用户定义的,浏览器不知道如何解释或呈现每个标签,因此必须使用 XSL。XML 标签的意义是为了方便用户(而不是计算机)理解。
XSLT 还可以对 XML 树进行下列操作:
* 添加和删除元素
* 添加和删除属性
* 对元素进行重新排列或排序
* 隐藏或显示某些元素
* 查找或选择特定元素
XSL 语法
您可能还记得 XML 概述文章中提到过,所有 XML 文档都是以 XML 声明开头。XSL 样式表也是一样。任何 XSL 文档的第一行实际上都是 XML 声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
XSL 是否与 XML 相同?
既是又不是。说是,是因为它们遵循相同的语法规则(只有少许差异,下面我将会讲到)。说不是,是因为它们的用途不同:XML 用于承载数据,而 XSL 则用于设置数据的格式。
在 XML 声明之后,就是 XSL 声明,例如:
<xsl:stylesheet>
或
<xsl:transform>
但是,在大多数实际情况下,XSL 声明看起来要稍微复杂一些:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
这是因为,根据 W3C 联盟的建议,它还包含命名空间和 XSL 规范的版本。
XSL 声明与 XML 声明的不同之处在于,XML 声明只写一行,而且没有结束标签,而 XSL 声明必须包含结束标签,该标签表示 XSL 样式表结束:
</xsl:stylesheet>
请注意,这并不与 XML 语法规则冲突:XSL 样式表是完全有效的 XML 文档,因为它有一个根元素,由 <xsl:stylesheet> 标签指定。
在什么情况下应该使用 XSL?
XSL 在设计时有几个目标用途,这些用途使它成为某些开发情况下的完美解决方案,而对另一些开发情况则毫无用处。
XSL 专门用于处理 XML 文档,并且遵循 XML 语法。因此,它只能在支持 XML 的应用程序中与 XML 结合使用。最合适使用 XML 和 XSL 的情况是:Web 门户、新闻聚合器、社区网站或其它任何需要向各种设备及大量客户端提供信息的 Web 应用程序。
XSLT 是一种基于模式匹配的语言。它会查找匹配特定条件的节点,然后应用相应的规则。因此,它不具备大多数编程语言的计算能力。例如,XSL 无法在运行时更改变量的值。它不应该用于从使用复杂公式的动态数据源(例如在线商店)来计算值。Web 编程语言更适于此用途。
XSL 不能代替或补充 CSS。它不应(也不能)用于设置 HTML 的样式。但是,您可以将其用于需要频繁重新设计可视化效果、频繁更换布局以及以灵活格式处理数据的网站。
XSL 不是内容管理工具。它不应(也不能)用于更改 XML 文档的内容或者编辑信息。但是,您可以将 XML 和 XSL 用于需要处理几种不同格式文档的内容管理系统。
它起始于 XSL,结束于 XSLT、XPath 以及 XSL-FO。
起始于 XSL
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。
万维网联盟 (W3C) 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。
CSS = HTML 样式表
HTML 使用预先定义的标签,标签的意义很容易被理解。
HTML 元素中的
XPath 是一种用于在 XML 文档中进行导航的语言。
什么是 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 使用 XPath
XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。
它如何工作?
在转换过程中,XSLT 使用 XPath 来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到,XSLT 就会把源文档的匹配部分转换为结果文档。
XSLT 是 W3C 标准
XSLT 在 1999 年 11 月 16 日被确立为 W3C 标准。
相关文章推荐
- XML, XSLT, XSD, XPATH, XSL
- XML and XSL (XPath, XSLT and XSL-FO)
- XML及其作用、CSS、XSL、XSLT、DOM、SAX的概念,XML Schema、XPath
- XML及其作用、CSS、XSL、XSLT、DOM、SAX的概念,XML Schema、XPath
- XML,XSL,XSLT,XPath 以及 XSL-FO
- jaxb jaxp使用xml来生成动态页面 - xml xsd xsl ( xpath xslt ) css 概念入门
- XML、DTD、XSD、XSL、XSLT
- [推荐]学习XML / XPath / XSLT的好书
- XML命名空间以及它们如何影响XPath和XSLT(Extreme XML)
- XSL 转换:XSLT 可缓和 XML 架构的不相容性问题[网淘]
- HTML、 XML 、HTTP、 SOAP、 XSLT、 Xpath
- 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页面[转载]
- [推荐]学习XML / XPath / XSLT的好书
- XSLT and XPATH: A Guide to XML Transformations
- 初探XSL,XSLT,XPath以及其他
- xpath简介__用于在XML中查找
- XSLT/XSL/XPATH的概念
- xml,xsl,xpath
- Xml,XPath,XSLTxue 学习方法
- XML Namespaces and How They Affect XPath and XSLT