XSLT是一种专用于转换xml文档的样式表语言,通过匹配XML元素将其重写为html等格式;需XML源文件、XSLT样式表和XSLT处理器三者配合完成转换。

XSLT 是一种专门用于转换 XML 文档的样式表语言,它通过匹配 XML 中的元素和结构,将其重写为另一种格式(如 HTML、纯文本或其他 XML)。把 XML 转成 HTML 是 XSLT 最常见的用途之一。
基本工作流程:XML + XSLT → HTML
要完成转换,你需要三样东西:
- 一个符合规范的 XML 源文件(比如包含书籍信息的
列表) - 一个 XSLT 样式表(.xsl 文件),定义如何把每个 XML 元素变成 HTML 标签
- 一个支持 XSLT 的处理器(浏览器、命令行工具如
xsltproc,或编程语言中的解析器,如 python 的lxml)
一个简单但完整的 XML → HTML 实例
假设你有如下 books.xml:
深入浅出XSLT 张三 59.00 XML完全手册 李四 72.50
对应编写 books.xsl:
立即学习“前端免费学习笔记(深入)”;
我的图书列表 图书目录
ID 书名 作者 价格
这个 XSLT 做了这些事:
- 用
定义整体 HTML 结构 - 用
遍历所有子节点 - 用
分别处理每本书,提取属性(@id)和子元素内容 -
提取文本值,不会带标签;若需保留嵌套 HTML 可改用
如何运行这个转换?
方法取决于你的环境:
- 在浏览器中(仅限旧版 firefox / IE 支持):在 XML 文件开头添加处理指令:
然后用浏览器直接打开 XML 文件(注意:现代 chrome/edge 不再支持内联 XSLT 渲染) - 命令行(推荐):安装
xsltproc(linux/macOS 自带或通过包管理器安装),执行:xsltproc books.xsl books.xml > output.html - Python 示例(使用 lxml):
from lxml import etree xml = etree.parse("books.xml") xsl = etree.parse("books.xsl") transform = etree.XSLT(xsl) result = transform(xml) with open("output.html", "wb") as f: f.write(etree.tostring(result, pretty_print=True, method="html"))
常见注意事项
XSLT 虽然逻辑清晰,但容易踩坑:
- XML 和 XSLT 文件编码必须一致(推荐统一用 UTF-8,并在文件头声明)
- 命名空间(Namespace)存在时,XSLT 中必须声明并使用前缀,否则匹配失败
- XSLT 1.0 不支持正则、分组排序等高级功能;如需更强能力,考虑升级到 XSLT 2.0/3.0(需 Saxon 等引擎)
- 避免在模板中写大量 HTML 内联样式,建议分离 css,保持 XSLT 关注结构转换