Kategorien
Tutorial

Java – XSL Transformation auf Dateien durchführen

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());
    }
  }
}