You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Xampp+Laravel环境PHP报‘XSLTProcessor类未找到’错误求助

解决Laravel项目中XSLTProcessor类找不到的问题(Windows XAMPP环境)

问题场景

在Windows系统的XAMPP环境下开发Laravel项目时,使用XSLTProcessor类执行XML转换,出现错误:

local.ERROR: Class "XSLTProcessor" not found

错误触发代码行:

$proc = new XSLTProcessor;

已尝试的操作:

  • 移除XAMPP目录php.ini中extension=xsl行前的分号
  • 通过XAMPP控制面板重启Apache
  • 执行php -i命令确认XSL扩展已启用
  • 在PHP文件顶部添加use XSLTProcessor;语句

核心业务代码:

// LOAD XML
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->load($xmlFile);

// LOAD XSLT 
$xsl = new DOMDocument('1.0', 'UTF-8');   
$xsl->load($pathToMyXSLFile);

// INITIALIZE TRANSFORMER
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

// PASS PARAMETER VALUES
$proc->setParameter('', 'find-value', $findParam);
$proc->setParameter('', 'replace-value', $replaceParam);

// TRANSFORM SOURCE
$new_xml = $proc->transformToDoc($xml);

排查与解决步骤

  1. 确认Apache加载的php.ini路径
    很多人会修改错配置文件,在Laravel项目根目录新建临时文件info.php,内容如下:

    <?php phpinfo(); ?>
    

    访问该文件,找到Loaded Configuration File项,复制路径,确保你修改的是这个路径下的php.ini文件,且其中extension=xsl行没有被注释。

  2. 检查XSL扩展文件存在性
    打开XAMPP的php/ext目录,确认存在php_xsl.dll文件。如果缺失,可从同版本的XAMPP安装包中拷贝该文件到ext目录。

  3. 清理Laravel缓存
    Laravel可能缓存了旧的扩展状态,执行以下命令清理:

    php artisan config:clear
    php artisan cache:clear
    
  4. 验证PHP版本一致性
    对比phpinfo()中显示的Apache PHP版本,和执行php -v得到的CLI PHP版本,确保两者完全一致。如果版本不同,说明你修改的是CLI的php.ini,而非Apache使用的配置文件。

  5. 重启整个XAMPP服务
    不要只重启Apache,关闭XAMPP所有服务(Apache、MySQL等),等待几秒后重新启动所有服务,确保配置修改完全生效。

  6. 重置XAMPP配置(终极方案)
    如果以上步骤都无效,备份项目后卸载当前XAMPP,下载对应版本的XAMPP重新安装,默认配置下XSL扩展是自带的,只需去掉extension=xsl前的分号即可。


内容的提问来源于stack exchange,提问作者John T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 22:53:05