求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

XSLT查看源代码讨论查看历史

跳转至: 导航搜索
XSLT

在计算机科学中,可扩展样式表转换语言(英语:Extensible Stylesheet Language Transformations,缩写XSLT)是一种样式转换标记语言,可以将XML数据档转换为另外的XML或其它格式,如HTML网页,纯文字。XSLT最末的T字母表示英语中的“转换”(transformation)。它是XSL规范中的一部分,目前最新的建议版本为XSL 3.0。

简介

在计算机科学中,可扩展样式表转换语言(英语:Extensible Stylesheet Language Transformations,缩写XSLT)是一种样式转换标记语言,可以将XML数据档转换为另外的XML或其它格式,如HTML网页,纯文字。XSLT最末的T字母表示英语中的“转换”(transformation)。它是XSL规范中的一部分,目前最新的建议版本为XSL 3.0。以XSLT进行格式转换并不会变动原始的数据文件;而会以现有数据产生新的内容格式。作为输入的通常是XML数据档,或者由支持XQuery和XPath的数据模型处理器,其它来源的数据也能被转换,例如关系数据库表格或地理信息系统。XSL规范的另外一部分是XSLF(Formatting Objects,代表格式化对象),又称XSL-FO或XSLFO,目前已逐渐被CSS 3.0所取代。XSLT是一种图灵完备的语言,它可以指定计算机能运行的任何计算。

评价

XSLT处理器会取用一或多个XML源数据档,加上一或多个XSLT样式表,并处理它们以产生输出文件。与广泛实现的指令式编程语言(例如C编程语言)相反,XSLT是宣告式的。基本处理的范式是模式配比。模板规则只定义如何处理特定XPath模式相符的节点,而不是列出在具有状态的环境中运行的一系列动作;处理器在遇到某一模式匹配时,那么模板规则的内容就包含了,以函数式语句评估的直接成果:即结果树,它是处理器输出的基础。处理器遵循固定的算法。首先,假设样式表已经读取和准备好了,处理器从输入的XML数据档创建来源代码树。然后处理来源树的根节点,在样式表中找到该节点相符的最佳模板,并评估模板的内容。每一个模板中的指令通常要求处理器在结果树中产生节点,或者与根节点相同的方式,处理来源树中的其它节点。从结果树中获取输出。早期大多数的XSLT处理器都是解释器。近来字节码越来越普遍,使用可移植的中间语言(如Java字节码或.NET中间语言)作为目标。然而,即使是解释器的成品通常也提供单独的分析和运行阶段,允许在内存中创建优化的表达式树,并可重复使用以运行多重转换。在线上发行应用程序时,这方式有显著的性能优势,其中同样的转换每秒可多次应用在不同的来源档之上。这种分离处理反映在XSLT处理器的应用编程接口(如JAXP)的设计中。早期XSLT处理器很少被优化过。读取的样式表成为文档对象模型,而XSLT处理器会直接对它们产生作用。XPath引擎也没有被优化过。但是渐增地,XSLT处理器利用了函数式编程和数据库查询语言中发现的优化技术,例如表达式树的静态重写(例如,将计算移出循环),以及惰性的流评估来减少过程中所占内存的足迹(允许处理器对子表达式求值时,“提早退出”而不必运行全部,例如following-sibling::*[1])。许多处理器还使用比一般DOM实现更有效率(在空间和时间上)的树表达式。[1]

参考文献

  1. XSLT搜狗