XSLT обрабатывает с Java? - PullRequest
       1

XSLT обрабатывает с Java?

67 голосов
/ 05 января 2011

Как преобразовать XML с процессором XSLT в Java с помощью JDK?

Ответы [ 4 ]

131 голосов
/ 22 июня 2011

Вот пример использования 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 etc .

8 голосов
/ 05 января 2011

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

7 голосов
/ 05 января 2011

Я новичок в xslt. Кто-нибудь может направить меня Как обработать XSLT с Java?

Это зависит от того, какой процессор XSLT на базе Java вы используете. Каждый процессор 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\"]% - список внешних имен (я почти всегда оставляю это пусто).

5 голосов
/ 05 января 2011

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

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...