使用 Saxon 对 Msi 文件 (xml) 运行 XSL 转换
Posted
技术标签:
【中文标题】使用 Saxon 对 Msi 文件 (xml) 运行 XSL 转换【英文标题】:Run XSL tranformation on an Mei file(xml) Using Saxon 【发布时间】:2021-10-05 19:49:00 【问题描述】:我正在尝试做我认为简单的事情,但我似乎不明白如何去做。
我有一个 mei 文件,它本质上是一个 xml,我想对其应用 xsl 转换。
我正在为此使用撒克逊语,这就是我一直在做的事情。
Processor processor = new Processor(false);
XsltCompiler xsltCompiler = processor.newXsltCompiler();
XsltExecutable exec = xsltCompiler.loadExecutablePackage(myURI);//URI containing my own xsl file
net.sf.saxon.s9api.Xslt30Transformer transformer = exec.load30();
问题是我在这一行出现异常XsltExecutable exec = xsltCompiler.loadExecutablePackage(myURI);
说java.lang.UnsupportedOperationException: Loading compiled packages requires Saxon-PE or higher (even when no license is needed)
问题现在有没有人可以采用不需要处理 PE 许可证的替代路径?
如果不是,我什至无法理解我应该如何使用它,这意味着我在 gradle 项目中使用 saxon,这意味着即使对于下载的 saxon-PE jar,我也将它安装在我的本地 m2 存储库中并通过 gradle 进行引用,所以怎么能我什至现在关于许可证的问题。
仅供参考:这是一个在亚马逊 Lambda 环境中运行的项目。
【问题讨论】:
saxonica.com/html/documentation10/using-xsl/embedding/… 也应该有帮助。 【参考方案1】:loadExecutablePackage
方法用于加载预编译的样式表。您只想从源 XSLT 编译样式表 - 为此,请使用 compile
方法。
您可能会发现查看 saxon-resources 下载文件中包含的示例应用程序很有用,该文件可从 www.saxonica.com 单独下载。
【讨论】:
谢谢你真的很有帮助!以上是关于使用 Saxon 对 Msi 文件 (xml) 运行 XSL 转换的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Saxon 的 XQuery 中动态引用 XML 文件
从 Saxon 9.4he 中的嵌入式资源加载 xml 和 xslt