【发布时间】:2019-01-12 11:02:51
【问题描述】:
Xalan 的简洁性非常吸引人,但是
我将如何使用xml 和xsl 文件从saxon 执行this 简单转换?
package xalan;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URI;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class XalanTransform {
public XalanTransform() {
}
public void transform(URI xml, URI xsl, URI out) throws Exception {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(new File(xsl)));
transformer.transform(new StreamSource(new File(xml)), new StreamResult(new FileOutputStream(new File(out))));
}
}
这简直再简单不过了,我很欣赏能够处理文件。我已经对CLI 中的saxon 进行了一些类似的操作,但我可能忽略了类似的文档,对于saxon 和Java,如上所述,文件在运行时加载。
【问题讨论】:
-
您是否尝试过阅读 Saxon 文档 (saxonica.com/html/documentation/using-xsl/embedding)? Saxon 提供了两个接口,它自己的 s9api,但为了兼容性,它还实现了 JAXP 转换 API(它与 Xalan 无关,而是以前的 SUN 和现在的 Oracle JRE API 的一部分),所以将 Saxon 9 放在类路径上并上面的代码应该运行 Saxon。
-
找到了saxonica.com/download/download_page.xml,我认为是资源包。我会尽量看看。
-
下载页面saxonica.com/download/download_page.xml#resources 在资源zip 中有所有示例,您可以在那里找到它,它也在Sourceforge sourceforge.net/projects/saxon/files/Saxon-HE/9.9 和存储库dev.saxonica.com/repos/archive/opensource/latest9.9/samples/… 中