Як перетворити XML за допомогою процесора XSLT в Java за допомогою JDK?
Як перетворити XML за допомогою процесора XSLT в Java за допомогою JDK?
Відповіді:
Ось зразок використання 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 тощо .
Я новачок у 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 із командного рядка .
Ось як я завжди використовую саксонську мову з командного рядка :
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\"]%
список імен - значення зовнішніх параметрів (я майже завжди залишаю це порожнім).
javax.xml.transform
. Я б використав це на користь будь-якої сторонньої бібліотеки зі своїм власним API, за винятком випадків, коли існує якась вагома причина для використання конкретної сторонньої бібліотеки.
Стандартна бібліотека Java забезпечує інтерфейс перетворення (XSLT) для аналізу XML. Див. Документацію до API для класів javax.xml.transform.Transformer
та javax.xml.transform.TransformerFactory
.
JAXP забезпечує незалежний від реалізації спосіб роботи з перетвореннями XSLT. Ось підручник для початку роботи. Якщо ви працюєте з величезними XSLT та / або працюєте з декількома XSLT, тоді також існує можливість кешування проаналізованих шаблонів XSLT з міркувань продуктивності. У цій статті пояснюється, як кешувати xslt