Saxon是最成熟跨平台XSLT/XQuery处理器,分HE(免费基础版)、PE(付费专业版)、EE(企业版)三版本;推荐初学者用Saxon-HE 12.4,命令行执行java -jar saxon-he-12.4.jar -s:input.xml -xsl:style.xsl -o:output.html,Java项目通过Maven引入依赖并调用Processor API。

Saxon 是目前最成熟、跨平台的 XSLT 和 XQuery 处理器,支持 2.0/3.0/3.1 标准,既可命令行运行,也能集成进 Java、.NET 或脚本项目中。安装和使用不复杂,但关键在选对版本、配好环境、用对入口。
下载与版本选择
Saxon 分为三个主要版本,按需选用:
- Saxon-HE(Home Edition):免费开源,支持 XSLT 3.0、XQuery 3.1 基础功能,适合学习、日常转换和轻量生产任务;
-
Saxon-PE(Professional Edition):付费版,增加流式处理(
xsl:stream)、多线程、高级序列操作等; -
Saxon-EE(Enterprise Edition):最高级版本,含
xsl:fork并行评估、Schema-aware 处理、Java 调用增强等,适合大型 XML 流水线。
推荐初学者从 saxon.sourceforge.net 下载最新 Saxon-HE 的 ZIP 包(如 saxon-he-12.4.zip),解压后即可使用。
命令行快速上手
确保系统已安装 Java 8 或更高版本(Saxon 是纯 Java 应用):
- Windows:打开终端,进入 Saxon 解压目录,运行:
java -jar saxon-he-12.4.jar -s:input.xml -xsl:style.xsl -o:output.html - macOS/Linux:同理,路径用斜杠,权限没问题即可执行。
- 常用参数说明:
-s:指定源 XML 文件;-xsl:指定 XSLT 样式表;-q:替换-xsl,用于运行 .xq 文件(XQuery);-o:输出目标文件;-t开启详细日志,便于调试。
在 Java 项目中调用
Maven 用户只需添加依赖(以 Saxon-HE 12.4 为例):
net.sf.saxon saxon-he 12.4
Java 代码示例(执行 XSLT):
Processor processor = new Processor(false);
XsltCompiler compiler = processor.newXsltCompiler();
XsltExecutable exec = compiler.compile(new StreamSource(new File("style.xsl")));
XsltTransformer transformer = exec.load();
transformer.setSource(new StreamSource(new File("input.xml")));
transformer.setDestination(new Serializer(new File("output.xml")));
transformer.transform();
若需调用 XQuery,替换为 XQueryCompiler 和 XQueryEvaluator 即可。
配合 BaseX 或其他工具使用
BaseX 自带内置 XQuery 引擎,但如需用 Saxon 的 XSLT 能力(比如流式或高阶函数),可手动配置:
- 在 BaseX GUI 或 conf/baseX.conf 中指定 Saxon JAR 路径;
- 通过 JAXP 接口注册 Saxon 的
TransformerFactory,例如:System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); - 这样 BaseX 的
xslt:transform()函数就能调用 Saxon 功能。
基本上就这些。起步建议先跑通命令行,再逐步嵌入项目。注意版本兼容性——XSLT 3.0 特性(如 xsl:fork)仅在 Saxon-PE/EE 中可用,HE 版会报错。










