XSLT是可扩展样式表转换语言的缩写,它是一种基于XML的语言,用来把一份XML文档转换成另一份XML、HTML或者纯文本。理解XSLT的关键,是把它看作一套描述如何从源数据提取并重组内容的规则。

一、XSLT的基本工作原理
XSLT处理器会读取两个输入:一个是待转换的XML源文档,另一个是XSLT样式表。样式表里写了若干模板,每个模板通过匹配模式绑定到源文档的某些节点上。处理器找到匹配的节点后,就按模板里的指令生成结果树。
核心概念
- 模板 template:定义对某种节点如何处理
- 匹配 match:用XPath表达式选择节点
- 输出 output:控制结果文档的格式与编码
二、一个简单的转换示例
假设我们有如下XML文件,记录了几本书的信息:
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book>
<title>XML入门</title>
<author>张三</author>
</book>
<book>
<title>XSLT实战</title>
<author>李四</author>
</book>
</library>
我们想把它转成简单的HTML列表,可以写这样一个XSLT:
<?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"/>
<!-- 匹配根节点 -->
<xsl:template match="/">
<html>
<body>
<h1>图书列表</h1>
<ul>
<xsl:for-each select="library/book">
<li>
<xsl:value-of select="title"/> -
<xsl:value-of select="author"/>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
上面的代码里,xsl:for-each用来循环选中的book节点,xsl:value-of负责取出对应子元素的值。
三、在程序里调用XSLT
以PHP为例,可以用自带扩展完成转换:
<?php
$xml = new DOMDocument();
$xml->load('books.xml');
$xsl = new DOMDocument();
$xsl->load('books.xsl');
$proc = new XSLTProcessor();
$proc->importStylesheet($xsl);
echo $proc->transformToXML($xml);
?>
这段代码先载入XML和XSLT,再创建处理器并导入样式表,最后输出转换后的内容。
四、常见学习误区
初学者容易把<input>这类HTML标签和XSLT里的元素混淆。要注意,在XSLT中写<html>是直接输出原样标签,而XPath函数如count()只是函数调用,不是标签。多写几个小例子,很快就能掌握节点匹配与输出的节奏。
XSLTXMLXML_transformation修改时间:2026-07-26 14:00:20