使用 Java 进行 XSLT 处理?

2022-08-31 11:50:31

如何使用JDK在Java中使用XSLT处理器转换XML?


答案 1

以下是使用java api进行transformer的示例,如@Raedwald所说:

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")));
    }
}

输入也可以来自字符串或 DOMSource,输出可以是 DOMSource


答案 2

我是 xslt 的新手。任何人都可以指导我如何使用java进行xslt处理?

这取决于您使用的是基于 Java 的 XSLT 处理器。每个 XSLT 处理器都有自己的 API。

例如,Saxon 6.5.5(对于 XSLT 1.0)和 Saxon 9.1.07(对于 XSLT 2.0)是用 Java 编写的。文档已 http://www.saxonica.com/documentation/documentation.xml

几乎所有 XSLT 处理器都有一个命令行实用工具,该实用工具不需要编写程序即可执行 XSLT 转换。

例如,这里是如何从命令行启动 Saxon 9.x 转换

以下是我总是从命令行使用 Saxon 的方式

java -Xms2048M  -Xmx10000M  -jar  
     C:\xml\Parsers\Saxon\Ver.9.1.0.7\J\saxon9.jar 
    -t  -repeat:1  -o %out%  %xml%  %xsl%  %param[ name=\"value\"]%

其中 是输出文件的名称,是 xml 文件,是主 xslt 文件,并且是外部参数的名称-值列表(我几乎总是将其留空)。%out%%xml%%xsl%%param[ name=\"value\"]%


推荐