Dieser Code bzw. Vorgängerversionen davon entstanden während meines Medieninformatik Studiums (2008-2014). Durch Aktualisierungen und Weiterentwicklung der Sprache Java, ist der angegebene Quelltext ggf. mit aktuellen Versionen nicht lauffähig und Bedarf kleiner Änderungen.
/**
* Eine kleine Hilfsklasse um per Funktionsaufruf eine XML-Datei
* mittels einer XSL-Tranformationsdatei in ein Ausgabeformat umzuwandeln
*
* @author André Kleinschmidt
* @version 1.0
*/
package transform;
import java.io.File;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class XSLTransform {
/** XSLTransformation
* @param String inputFilename Dateiname der Quelldatei (XML)
* @param String outputFilename Dateiname der Zieldatei
* @param String xslFilename Dateiname der Transformationsdatei (XSL)
*/
public static void transformFile(String inputFilename, String outputFilename, String xslFilename) {
// Dateihandler erzeugen
File inputFile = new File(inputFilename);
File outputFile = new File(outputFilename);
File xslFile = new File(xslFilename);
// Input und Output-Ströme erzeugen
StreamSource inputStream = new StreamSource(inputFile);
StreamResult outputStream = new StreamResult(outputFile);
StreamSource xslStream = new StreamSource(xslFile);
// Fabrik-Instanz für XML-Transformator holen/erstellen
TransformerFactory fabrik = TransformerFactory.newInstance();
Transformer transformer;
try {
// XML-Transformater aus XSL-Dateistrom erzeugen
transformer = fabrik.newTransformer(xslStream);
try {
transformer.transform(inputStream, outputStream);
} catch (TransformerException e) {
System.err.printf(
"Ausnahme bei XSLTransformation: %s.\n",
e.getMessage());
}
} catch (TransformerConfigurationException e) {
System.err.printf(
"Ausnahme bei Erstellen der XSLTransformer-Instanz: %s.\n",
e.getMessage());
}
}
}