XSLT 是一种用于转换 XML 文档的声明式语言,通过 XPath 定位节点、模板定义输出规则,需源 XML、XSLT 样式表(含命名空间声明)和处理器三者配合,支持转为 HTML、文本、XML 等格式。

XSLT 是一种专门用来转换 XML 文档的声明式语言,全称是 Extensible Stylesheet Language Transformations。它不负责显示样式(那是 CSS 或 XSL-FO 的事),而是把一份 XML 按规则“重写”成 HTML、纯文本、另一种 XML 结构,甚至 JSON(需配合扩展)。核心逻辑是:用 XPath 找节点,用模板定义怎么输出。
XSLT 转换要准备三样东西
缺一不可:
- 源 XML 文件:比如
books.xml,含原始数据结构 - XSLT 样式表文件:比如
books.xsl,是标准 XML 格式,必须声明命名空间xmlns:xsl="http://www.w3.org/1999/XSL/Transform",根元素用或(二者完全等价) - XSLT 处理器:执行转换的引擎,常见有浏览器(仅支持 XSLT 1.0)、
saxon(命令行或 Java)、XslCompiledTransform(.NET)、libxslt(Python 的 lxml)等
一个最简可用的转换示例
假设 books.xml 有如下内容:
XML Basics John Doe
对应 books.xsl 可这样写:
Book List
by
关键点:match="/" 匹配根节点,match="book" 定义如何渲染每个 book 元素,xsl:value-of 提取文本值,xsl:apply-templates 触发子匹配。
怎么执行转换
方式取决于使用场景:
- 浏览器直接打开 XML:只要 XML 文件里有
声明,且浏览器支持(如旧版 Firefox、IE),就会自动加载并渲染为 HTML(注意:现代 Chrome/Safari 已移除原生 XSLT 支持) - 命令行(推荐调试):安装
saxon-he后运行java -jar saxon-he.jar books.xml books.xsl - .NET 环境:用
XslCompiledTransform类加载 .xsl,调用Transform()方法输出到文件或流 - JavaScript(前端):用
DOMParser和浏览器内置XSLTProcessor对象(仅限支持环境),适合轻量动态转换
常见用途和注意事项
XSLT 不是万能胶,但特别适合结构化数据的“格式搬家”:
- 把内部 XML 日志转成带表格和颜色的 HTML 报告
- 从通用 XML Schema 输出适配某系统要求的专用 XML 接口格式
- 过滤敏感字段(如去掉
)、重排序、合并多个 XML 文件 - 注意版本兼容性:XSLT 1.0 最广泛支持;2.0/3.0 功能更强(正则、分组、高阶函数),但需 Saxon 或 Altova 等高级处理器
- 避免在 XSLT 中做复杂业务逻辑——它不是编程语言,嵌套过深或大量条件易难维护
相关文章
XPath的id()函数怎么快速查找具有特定ID的元素
Python lxml库怎么安装和使用 lxml解析XML教程
如何在网页中嵌入SVG XML代码
Python lxml和libxml2的关系是什么
如何用CSS选择器查询XML文档 querySelector
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn










