XSLT如何转换XML?XSLT将XML转为HTML实例教程

来源:Vuejs社区作者:樱由罗头衔:网络博主
导读:本期聚焦于小伙伴创作的《XSLT如何转换XML?XSLT将XML转为HTML实例教程》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《XSLT如何转换XML?XSLT将XML转为HTML实例教程》有用,将其分享出去将是对创作者最好的鼓励。

XSLT是可扩展样式表语言转换的缩写,它的核心作用是将一个XML文档转换为另一个XML文档、HTML文档或者纯文本文档,通过定义匹配规则和转换模板,实现XML数据的重组和格式化输出。

XSLT如何转换XML?XSLT将XML转为HTML实例教程

XSLT转换XML的基本原理

XSLT的处理过程依赖两个核心文件:待转换的XML源文件,以及定义转换规则的XSLT样式表文件。XSLT解析器会读取XML源文件的结构和内容,同时匹配XSLT样式表中定义的模板规则,按照规则对XML节点进行筛选、排序、重组,最终输出目标格式的内容。

核心组成部分

  • XML源文件:存储原始结构化数据,遵循XML语法规范,包含需要转换的所有内容节点
  • XSLT样式表:以<xsl:stylesheet>为根节点,内部通过<xsl:template>定义匹配不同XML节点的转换模板
  • XSLT解析器:负责执行转换逻辑,浏览器、服务端程序都可以集成XSLT解析能力

XSLT将XML转为HTML的完整实例

下面通过一个学生信息展示的场景,演示完整的转换过程,最终将存储学生信息的XML转换为展示学生列表的HTML表格。

1. 准备XML源文件

首先创建存储学生数据的XML文件,命名为students.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<students>
    <student id="1">
        <name>张三</name>
        <age>20</age>
        <major>计算机科学</major>
        <score>92</score>
    </student>
    <student id="2">
        <name>李四</name>
        <age>21</age>
        <major>软件工程</major>
        <score>88</score>
    </student>
    <student id="3">
        <name>王五</name>
        <age>19</age>
        <major>数据科学</major>
        <score>95</score>
    </student>
</students>

这里XML文件头部添加了<?xml-stylesheet?>指令,指定了关联的XSLT样式表路径,浏览器加载该XML时会自动执行转换并渲染结果。

2. 编写XSLT样式表文件

创建名为students.xsl的XSLT文件,定义转换规则,将XML中的学生节点转换为HTML表格的行:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 输出格式为HTML -->
    <xsl:output method="html" encoding="UTF-8"/>

    <!-- 匹配根节点students的模板 -->
    <xsl:template match="/students">
        <html>
            <head>
                <title>学生信息列表</title>
                <style>
                    table {
                        border-collapse: collapse;
                        width: 80%;
                        margin: 20px auto;
                    }
                    th, td {
                        border: 1px solid #ccc;
                        padding: 8px 12px;
                        text-align: center;
                    }
                    th {
                        background-color: #f0f0f0;
                    }
                </style>
            </head>
            <body>
                <h2 style="text-align: center;">学生信息列表</h2>
                <table>
                    <tr>
                        <th>学号</th>
                        <th>姓名</th>
                        <th>年龄</th>
                        <th>专业</th>
                        <th>成绩</th>
                    </tr>
                    <!-- 遍历所有student子节点 -->
                    <xsl:for-each select="student">
                        <!-- 按成绩降序排序 -->
                        <xsl:sort select="score" order="descending" data-type="number"/>
                        <tr>
                            <td><xsl:value-of select="@id"/></td>
                            <td><xsl:value-of select="name"/></td>
                            <td><xsl:value-of select="age"/></td>
                            <td><xsl:value-of select="major"/></td>
                            <td><xsl:value-of select="score"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

这个XSLT样式表中,首先通过<xsl:output>指定输出为HTML格式,然后匹配/students根节点,生成完整的HTML页面结构,使用<xsl:for-each>遍历所有student节点,通过<xsl:value-of>提取对应节点的内容,还添加了按成绩降序排序的逻辑。

3. 执行转换并查看结果

students.xmlstudents.xsl放在同一目录下,用浏览器直接打开students.xml文件,浏览器会自动加载关联的XSLT样式表执行转换,最终渲染出包含学生信息的HTML表格,表格会按照成绩从高到低排列。

如果需要服务端执行转换,也可以使用Java、Python等语言的XSLT解析库实现,以Python为例,使用lxml库的执行代码如下:

from lxml import etree

# 加载XML源文件
xml_tree = etree.parse("students.xml")
# 加载XSLT样式表
xslt_tree = etree.parse("students.xsl")
# 创建转换器
transformer = etree.XSLT(xslt_tree)
# 执行转换
result = transformer(xml_tree)
# 输出转换后的HTML内容
print(str(result))
# 保存为HTML文件
with open("students.html", "w", encoding="UTF-8") as f:
    f.write(str(result))

常见问题说明

  • 如果XSLT中引用了外部资源,需要保证路径正确,否则会导致转换失败
  • XML和XSLT文件的编码需要保持一致,否则可能出现中文乱码问题
  • 浏览器对XSLT的支持存在差异,复杂的XSLT逻辑建议在服务端完成转换后输出HTML

XSLTXMLHTMLXML_to_HTML修改时间:2026-06-23 06:18:44

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。