XSLT如何转换XML XSLT将XML转为HTML实例

3次阅读

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

XSLT如何转换XML XSLT将XML转为HTML实例

XSLT 是一种专门用于转换 XML 文档的样式表语言,它通过匹配 XML 中的元素和结构,将其重写为另一种格式(如 HTML、纯文本或其他 XML)。把 XML 转成 HTML 是 XSLT 最常见的用途之一。

基本工作流程:XML + XSLT → HTML

要完成转换,你需要三样东西:

  • 一个符合规范的 XML 源文件(比如包含书籍信息的 列表)
  • 一个 XSLT 样式表(.xsl 文件),定义如何把每个 XML 元素变成 HTML 标签
  • 一个支持 XSLT 的处理器浏览器、命令行工具xsltproc,或编程语言中的解析器,如 pythonlxml

一个简单但完整的 XML → HTML 实例

假设你有如下 books.xml

         深入浅出XSLT     张三     59.00           XML完全手册     李四     72.50    

对应编写 books.xsl

立即学习前端免费学习笔记(深入)”;

  

我的图书列表

图书目录

ID书名作者价格

这个 XSLT 做了这些事:

  • 定义整体 HTML 结构
  • 遍历所有 子节点
  • 分别处理每本书,提取属性(@id)和子元素内容
  • 提取文本值,不会带标签;若需保留嵌套 HTML 可改用

如何运行这个转换?

方法取决于你的环境:

  • 浏览器中(仅限旧版 firefox / IE 支持):在 XML 文件开头添加处理指令:

    然后用浏览器直接打开 XML 文件(注意:现代 chrome/edge 不再支持内联 XSLT 渲染)
  • 命令行(推荐):安装 xsltproclinux/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 关注结构转换

text=ZqhQzanResources