Comment transformer XML avec le processeur XSLT en Java?
Réponses
Trop de publicités?Voici un exemple d'utilisation de java api pour transformateur, comme l'a dit @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")));
}
}
Je suis nouveau sur xslt. Quelqu'un peut-il me guider comment xslt avec java?
Cela dépend de Java à base de processeur XSLT vous utilisez. Chaque processeur XSLT a sa propre API.
Par exemple, Saxon 6.5.5 (pour XSLT 1.0) et Saxon 9.1.07 (pour XSLT 2.0) sont écrits en Java. La documentation est à http://www.saxonica.com/documentation/documentation.xml
Presque tous les processeurs XSLT avoir un utilitaire de ligne de commande, qui ne nécessite pas l'écriture d'un programme, dans le but d'effectuer une transformation XSLT.
Par exemple, ici, est: comment faire pour démarrer un Saxon 9.x la transformation de la ligne de commande.
Voici comment je l'utilise toujours Saxon à partir de la ligne de commande:
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\"]%
où
%out%
est le nom du fichier de sortie,%xml%
est le fichier xml,%xsl%
est le principal fichier xslt et%param[ name=\"value\"]%
est un nom de la liste de valeurs de paramètres extérieurs (j'ai presque toujours laisser ce vide).
La bibliothèque standard Java fournit une interface de transformation (XSLT) pour l'analyse XML. Consultez la documentation de l'API pour les classes javax.xml.transform.Transformer
et javax.xml.transform.TransformerFactory
.
JAXP fournit une mise en œuvre indépendante de la façon de travailler avec des transformations XSLT. Voici le tutoriel pour vous aider à démarrer. Si vous travaillez avec d'énormes XSLT et/ou de travailler avec de multiples XSLT, puis il ya aussi une option de mise en cache de l'analyse des modèles XSLT pour des raisons de performances. Cet article explique comment mettre en cache de xslt