XSLT
维基教科书用户认为此页面应该拆分为更小的页面,包含更窄的子主题。 您可以通过将此大页面拆分为更小的页面来提供帮助。请确保遵循命名策略。将书籍划分为更小的部分可以提供更多的关注,并允许每个部分做好一件事,这将使每个人受益。 |
此页面已导入,需要进行去维基化. 书籍应尽可能少地使用维基链接,并且仅用于引用理解内容至关重要的技术或深奥术语。大多数甚至所有维基链接都应简单地删除。在页面去维基化后,请删除{{dewikify}}。 |
XSLT (可扩展样式表语言转换) 是一种用于转换XML 文档为其他 XML 文档(相同XML 架构或不同),或其他对象,例如用于网页的HTML,或用于其他用途的纯文本,或许多其他基于文本的格式(例如RTF 或任何SGML 文档)。
XSLT 或 XSL? XSLT 文件的通常 3 个字母扩展名是.xsl,因此,它会导致与 .xls 混淆,.xls 是较旧的 Microsoft Excel 文件的后缀。 |
XSLT 或 XSL-FO? XSLT 可用于将 XML 转换为XSL 格式化对象 (XSL-FO),然后可以将其转换为PDF、PostScript 和PNG。XSLT 和 XSL-FO 是截然不同的东西。 |
当转换“XML 到 XML”时,可能会有更多转换的链,当转换“XML 到对象”时,链必须停止(对象是终端)。
有两个主要的 XSLT 标准组
- XSLT-v1 (旧):于 1999 年 11 月作为W3C 建议发布。但是,截至 2014 年,XSLT v1.0 仍然被广泛使用,因为 2.0 和 3.0 在网络浏览器或LAMP 等环境中不受原生支持。
- XSLT-v2 和 XSLT-v3 (更新):仅适用于“Java 世界”和一些专有框架,例如 Oracle 或 Altova 的产品。
本维基教科书是关于 XSLT-v1,它拥有更广泛的用户群体。
XSLT-v1 解析器(例如libXml2)速度快且稳定。在MVC 上下文中,主要的 XSLT-v1 用途是作为MVC-查看器进行过滤或渲染,并以最小的处理成本来处理由MVC-建模器生成的 XML。对于“图灵完备”处理,为了避免迁移到 XSLT-v2 或 XSLT-v3,通常的解决方法是使用嵌入语言的处理,通过注册函数功能。示例:本维基教科书展示了在 PHP 环境中使用 XSLT 时如何使用注册函数。
XPath-v1 和 XSLT-v1 是基本标准,存在于几乎所有 XML 应用程序中,以及许多开放平台浏览器(Firefox、Chrome 等)、便携式系统(如 ANDROID)、桌面系统(如 UBUNTU 或 Windows)、数据库(例如 PostgreSQL、MySQL 等)以及其他系统中。
但 XPath-v1 和 XSLT-v1 在处理能力方面受到限制。一个好的选择是使用外部函数,这些函数可以在 XPath 或 XSLT 解析器中注册。此功能被称为注册函数。
注册函数对于编写良好的 XPath-v1 和 XSLT-v1 应用程序至关重要,但很少得到很好的解释:要增强处理能力,您需要了解注册函数,其用途和确切的使用场景。
使用 XSLT 或 XPath 解析器的编程语言(例如 PHP)或代理(例如 网络浏览器)可以被调用回来以提供其内部函数(例如 浏览器的 Javascript 函数或 PHP 的函数)。
注册函数没有得到很好的文档记录。W3C 标准没有定义所有细节,也没有提供“注册函数教程”。
PHP/Python/Javascript/等手册本身没有简单的解释来真正捕捉到本质,并且在网络上发布的帖子似乎也缺少某些细节。
本维基教科书试图填补这一空白;并为此进行了一系列相关主题的广泛介绍。这里提出了两种主要方式来使用外部函数
- 自由使用:任何函数,内置函数或用户定义函数,最佳实践是使用特定的命名空间,例如 PHP 的“php”或 Python 的“py”。
- 受控使用:一种与语言无关的约定,使用本地标准库。最佳实践是使用通用命名空间,例如“fn”。因此,如果项目从 PHP 更改为 Python,例如,XSLT(或 XPath)保持相同的代码和命名空间。
对于自由使用注册函数
- PHP:PHP 编程/XSL/注册 PHP 函数
- ...: .. ?? ..
对于受控注册函数(使用 FN 命名空间的约定)
- 标准注册函数:一项建议。