Как преобразовать XML с процессором XSLT в Java, используя JDK?
Обработка XSLT с помощью Java?
Ответ 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