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 分为三个主要版本,按需选用:
xsl:stream)、多线程、高级序列操作等;xsl:fork 并行评估、Schema-aware 处理、Java 调用增强等,适合大型 XML 流水线。推荐初学者从 saxon.sourceforge.net 下载最新 Saxon-HE 的 ZIP 包(如 saxon-he-12.4.zip),解压后即可使用。
确保系统已安装 Java 8 或更高版本(Saxon 是纯 Java 应用):
java -jar saxon-he-12.4.jar -s:input.xml -xsl:style.xsl -o:output.html
-s: 指定源 XML 文件;-xsl: 指定 XSLT 样式表;-q: 替换 -xsl,用于运行 .xq 文件(XQuery);-o: 输出目标文件;-t 开启详细日志,便于调试。Maven 用户只需添加依赖(以 Saxon-HE 12.4 为例):
net.sf.saxon saxon-he12.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 自带内置 XQuery 引擎,但如需用 Saxon 的 XSLT 能力(比如流式或高阶函数),可手动配置:
TransformerFactory,例如:System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
xslt:transform() 函数就能调用 Saxon 功能。基本上就这些。起步建议先跑通命令行,再逐步嵌入项目。注意版本兼容性——XSLT 3.0 特性(如 xsl:fork)仅在 Saxon-PE/EE 中可用,HE 版会报错。