Traitement XSLT avec Java? [fermé]
Vous voulez améliorer cette question? Mettre à jour le question donc c'est sur le sujet pour le débordement de pile.
Fermé il y a 3 mois.
Améliorer cette questionComment transformer XML avec le processeur XSLT en Java en utilisant le JDK?
4 answers
Voici un exemple d'utilisation de l'api java pour transformer, 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")));
}
}
L'entrée peut également provenir d'une chaîne ou d'un DOMSource, la sortie peut être vers un DOMSource etc.
Je suis nouveau sur xslt. Quelqu'un peut-il me guider comment traiter xslt avec java?
Cela dépend du processeur XSLT basé sur Java que 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 ont une ligne de commande utilitaire, qui ne nécessite pas d'écrire un programme pour effectuer une transformation XSLT.
, Par exemple, voici: comment faire pour démarrer un Saxon 9.x transformation à partir 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 fichier xslt primaire et %param[ name=\"value\"]%
est une liste de noms-valeurs de paramètres externes (j'ai presque toujours laissez ce vide).
La bibliothèque standard Java fournit une interface de transformation (XSLT) pour l'analyse XML. Voir la documentation de l'API pour les classes javax.xml.transform.Transformer
et javax.xml.transform.TransformerFactory
.
JAXP fournit une manière indépendante de l'implémentation de travailler avec les transformations XSLT. Voici le tutoriel pour vous aider à démarrer. Si vous travaillez avec d'énormes XSLT et / ou avec plusieurs XSLT, il existe également une option de mise en cache des modèles XSLT analysés pour des raisons de performances. Cet article explique comment mettre en cache xslt