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

使用Saxon运行ANT的XSLT任务时提示XML resolver未找到错误

解决方案

  1. 检查Resolver依赖配置正确性
  • 确认你使用的是Apache XML Commons Resolver 1.2及以上版本,Saxon 10.6对旧版Resolver兼容性不足,会触发识别失败问题
  • 确认${resolver.path}变量指向完整的resolver.jar文件路径,而非存放jar包的上级目录,Windows环境下路径如果包含空格需要用引号包裹变量值
  • 确认${catalog.path}变量指向具体的catalog XML文件,而非存放目录
  1. 调整Ant类加载优先级
    Ant执行任务时默认优先加载ANT_HOME/lib下的依赖包,项目路径下的jar包可能被类加载优先级拦截导致识别失败,可任选以下一种方案解决:
  • 将saxon-he-10.6.jar和resolver.jar同时放入ANT_HOME/lib目录
  • 执行ant命令时添加-lib参数指定依赖存放目录,示例:ant -lib ./depend-lib 你的转换任务名
  1. 显式指定Saxon的URIResolver实现
    修改你的ANT脚本中xslt任务的factory配置,手动声明使用CatalogResolver作为URI解析器,修改后的完整配置如下:
<xslt style="transform.xsl" basedir="${basedir}" destdir="${destdir}" extension=".dita" processor="trax">
  <factory name="net.sf.saxon.TransformerFactoryImpl">
    <attribute name="http://saxon.sf.net/feature/uriResolverClass" value="org.apache.xml.resolver.tools.CatalogResolver"/>
  </factory>
  <classpath>
     <pathelement path="${resolver.path}"/>
     <pathelement path="${saxon.path}" />
  </classpath>
  <xmlcatalog>
    <catalogpath path="${catalog.path}" />
  </xmlcatalog>
</xslt>

内容的提问来源于stack exchange,提问作者Jamie Lester

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:06:04