Für ein aktuelles Projekt in Java benötigte ich eine Funktion/Klasse die es mir ermöglicht XML Code mittels XSL zu Transformieren. Dazu gibt es auch einige Beispiele im Netz die aber meist fertige Dateien von der Festplatte einlesen und Transformieren.
Hier dazu mein Beispiel welches nur mit Strings umgeht:
import java.io.StringReader; import java.io.StringWriter;import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory;class XslTransformer { /** * transform given xml with given xsl * * @param xml * @param xsl * @return * @throws TransformerException */ public static String transform(String xml, String xsl) throws TransformerException { StringReader srXml = new StringReader(xml); StringReader srXsl = new StringReader(xsl); StringWriter result = new StringWriter();TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer( new javax.xml.transform.stream.StreamSource(srXsl));transformer.transform( new javax.xml.transform.stream.StreamSource(srXml), new javax.xml.transform.stream.StreamResult(result)); return result.toString(); } |