XSL 扩展在 XAMPP 中默认关闭,需取消 php.ini 中 ;extension=php_xsl.dll(Windows)或 ;extension=xsl(Linux)的注释,确认 libxslt.dll 和 libexslt.dll 存在于 PHP 目录,并重启 Apache 后用 XSLTProcessor 实例验证。

XSL 扩展在 XAMPP 的 PHP 中默认是关闭的,必须手动启用 php_xsl.dll 才能使用 xslt_process、XSLTProcessor 等功能。
确认 PHP 是否已编译支持 XSL
不是所有 PHP 版本都内置 XSL 支持。XAMPP 自带的 PHP 通常已静态编译了 libxslt,但扩展仍需显式启用。运行 phpinfo() 查看页面中是否有 “xsl” 模块区块 —— 若没有,说明扩展未加载,而非 PHP 不支持。
- 打开
C:\xampp\php\php.ini(Windows)或/opt/lampp/etc/php.ini(Linux) - 搜索
;extension=php_xsl.dll(Windows)或;extension=xsl(Linux) - 去掉前面的分号,保存文件
- 重启 Apache(仅改
php.ini后必须重启,否则不生效)
Windows 下启用 php_xsl.dll 的常见失败点
即使取消了 php.ini 中的注释,仍可能报错 PHP Startup: Unable to load dynamic library 'php_xsl.dll' —— 这通常是因为依赖缺失,而非路径错误。
-
php_xsl.dll依赖libxslt.dll和libexslt.dll,这两个文件必须存在于C:\xampp\php目录下(XAMPP 通常已自带) - 若缺失,不要单独下载 DLL:XAMPP 版本与 PHP 版本强绑定,混用 DLL 极易导致 Apache 启动崩溃
- 检查
php -m | findstr xsl(命令行)是否列出xsl;若无,再查php --ri xsl是否报 “Extension 'xsl' not present” - 若仍失败,可临时用
get_loaded_extensions()在脚本中确认实际加载列表
验证 XSL 功能是否可用(最小可运行示例)
启用后别急着写复杂转换,先用最简代码验证核心能力是否就绪:
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
<?php $xml = '<?xml version="1.0"?><root><item>test</item></root>'; $xsl = '<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><html><body><p>OK</p></body></html></xsl:template></xsl:stylesheet>'; $xmldoc = new DOMDocument(); $xmldoc->loadXML($xml); $xsldoc = new DOMDocument(); $xsldoc->loadXML($xsl); $proc = new XSLTProcessor(); $proc->importStylesheet($xsldoc); echo $proc->transformToXML($xmldoc); ?>
若输出 <html><body><p>OK</p></body></html>,说明 XSL 扩展已真正可用;若报 Class 'XSLTProcessor' not found 或警告 extension missing,则回到前两步排查。
Linux(LAMPP)下启用 xsl 扩展的差异点
Linux 版 XAMPP(即 LAMPP)的配置逻辑一致,但细节不同:
- 配置文件路径为
/opt/lampp/etc/php.ini,不是/etc/php.ini - 扩展名是
xsl而非php_xsl.dll,启用行应为extension=xsl - 无需额外 DLL,但需确保系统已安装
libxslt-dev(编译时依赖),不过 LAMPP 二进制包通常已静态链接 - 重启命令为
/opt/lampp/lampp restart,不是systemctl或service
最容易被忽略的是:XAMPP 的 php.ini 和系统全局 php.ini 完全无关,改错文件等于白改。

















