java - 使用 Xalan APi 2.7.1 进行 XSLT 处理

标签 java xml xslt-1.0

我必须进行xsl转换,其中我将传递示例输入xml以最终实现最终的转换xml,我已经使用变压器的java api编写了程序,请有人告诉我如何编写相同的代码,以便它也适用于 xalan api 2.7.1,下面是 jaa 的代码,我需要将其转换为与 xalan 兼容的

import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;

public class TestMain {
    public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {
        TransformerFactory factory = TransformerFactory.newInstance();
        Source xslt = new StreamSource(new File("transform.xslt"));
        Transformer transformer = factory.newTransformer(xslt);

        Source text = new StreamSource(new File("input.xml"));
        transformer.transform(text, new StreamResult(new File("output.xml")));
    }
} 

最佳答案

您需要为 Xalan 使用的 API 是标准 javax.xml.transform API,无需更改。如果 Xalan 位于您应用程序的类路径上,则

TransformerFactory.newInstance();

将创建一个 Xalan 转换器,而不是使用 Java 内置实现(它本身就是 Xalan 的一个分支)。如果您想强制执行特定的转换器实现,请使用两个参数的形式

TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null);

关于java - 使用 Xalan APi 2.7.1 进行 XSLT 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19637633/

相关文章:

python - 修改python中的xml数据

java - 横式日历

java - java如何处理使用原始类型列表的泛型性和多态性

java - 从 JTextPane 获取特定样式的所有文本

xml - InfoPath - 无法打开,表单定义 (.xsf) 包含错误

java - 如何通过 DOM 从以下 XML 中获取第一个子标签

Java 使用 linux sudo 能力

xslt - 在 xsl 中使用子字符串

c# - XslTransformException 位于哪个程序集?

xml - (XSLT,代码优化)如何输出引用兄弟节点值的节点..?