Обработка XSLT с помощью Java?

Как преобразовать XML с процессором XSLT в Java, используя JDK?

Ответ 1

Вот пример использования Java API для трансформатора, как сказал @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

Стандартная библиотека Java предоставляет интерфейс преобразования XSLT для синтаксического анализа XML. См. Документацию API для классов javax.xml.transform.Transformer и javax.xml.transform.TransformerFactory.

Ответ 3

Я новичок в xslt. Может ли кто-нибудь вести меня Как обрабатывать xslt с помощью java?

Это зависит от того, какой 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\"]%

где %out% - имя выходного файла, %xml% - это xml файл, %xsl% - это основной файл xslt, а %param[ name=\"value\"]% - список внешних параметров (значения почти всегда оставляются пустой).

Ответ 4

JAXP обеспечивает независимый от реализации способ работы с преобразованиями XSLT. Вот учебник, чтобы вы начали. Если вы работаете с огромным XSLT и/или работаете с несколькими XSLT, тогда есть возможность кэшировать проанализированные шаблоны XSLT по соображениям производительности. В этой статье объясняется, как кешировать xslt