XSLT-Basisoperationen ausführen
Für XSLT-Transformationen können Sie die mit XFactory.prepareXSLT-Methoden erstellten Instanzen von XSLTExecutable verwenden.
Informationen zu diesem Vorgang
XSLT-Style-Sheets können mit einem JAXP-Quellenobjekt an die Methode XFactory.prepareXSLT übergeben werden. Die resultierende XSLTExecutable-Instanz ist threadsicher und kann für die Transformierung mehrerer Eingabedokumente wiederverwendet werden.
Vorgehensweise
Beispiel
Das folgende Basisbeispiel zeigt die Vorbereitung und Ausführung einer interpretierten Transformation.
// Factory erstellen
XFactory factory = XFactory.newInstance();
// StreamSource für das Style-Sheet erstellen
StreamSource stylesheet = new StreamSource("simple.xsl");
// Ausführbares XSLT-Objekt für das Style-Sheet erstellen
XSLTExecutable executable = factory.prepareXSLT(stylesheet);
// Eingabequelle erstellen
Source input = new StreamSource("simple.xml");
// Ergebnis erstellen
Result result = new StreamResult(System.out);
// Transformation durchführen
executable.execute(input, result);
Das folgende Basisbeispiel zeigt die
Vorbereitung und Ausführung einer kompilierten Transformation.
// Factory erstellen
XFactory factory = XFactory.newInstance();
// StreamSource für das Style-Sheet erstellen
StreamSource stylesheet = new StreamSource("simple.xsl");
// Neuen statischen Kontext erstellen
XStaticContext staticContext = factory.newStaticContext();
// Compiler aktivieren
staticContext.setUseCompiler(true);
// Ausführbares XSLT-Objekt für das Style-Sheet erstellen
XSLTExecutable executable = factory.prepareXSLT(stylesheet, staticContext);
// Eingabequelle erstellen
Source input = new StreamSource("simple.xml");
// Ergebnis erstellen
Result result = new StreamResult(System.out);
// Transformation durchführen
executable.execute(input, result);
Das folgende Basisbeispiel zeigt die Erstellung einer Identitätstransformation.
// Factory erstellen
XFactory factory = XFactory.newInstance();
// Element Factory erstellen
XItemFactory itemFactory = factory.getItemFactory();
// Eingabequelle erstellen
Source input = new StreamSource("simple.xml");
// XItemView-Objekt aus der Eingabequelle erstellen
XItemView item = itemFactory.item(input);
// XOutputParameters-Objekt erstellen
XOutputParameters params = factory.newOutputParameters();
// Parameter setzen
params.setMethod("xml");
params.setEncoding("UTF-8");
params.setIndent(true);
// Ergebnis erstellen
Result result = new StreamResult(System.out);
// Im Ergebnis serialisieren
item.exportItem(result, params);
Das folgende Basisbeispiel zeigt die Erstellung einer schemafähigen Transformation.
// Factory erstellen
XFactory factory = XFactory.newInstance();
// Validierung aktivieren
factory.setValidating(true);
// Schemaquelle erstellen
StreamSource schema = new StreamSource("schema.xsd");
// Schema registrieren
factory.registerSchema(schema);
// Style-Sheet-Quelle erstellen
StreamSource stylesheet = new StreamSource("schema.xsl");
// Ausführbares XSLT-Objekt für das Style-Sheet erstellen
XSLTExecutable executable = factory.prepareXSLT(stylesheet);
// Eingabequelle erstellen
StreamSource input = new StreamSource("schema.xml");
// Ergebnis erstellen
StreamResult result = new StreamResult(System.out);
// Transformation durchführen
executable.execute(input, result);