WinFuture-Forum.de: Java: Writer-problem Bei Xsl-transformation - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Java: Writer-problem Bei Xsl-transformation


#1 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

  geschrieben 12. Februar 2008 - 15:06

Hallo,

ich habe ein Problem mit einem Codefragment. Ich möchte eine XSL-Transformation machen und mache das mit folgendem Code.

try {
	  // The XSLT Stylesheet is null if there is no one specified.
	  // In this case the Output must not be transformed.
	  if(xsltSource != null) {  

		Source xmlSource = null;
		if( writer instanceof StringWriter) {
		  xmlSource = new StreamSource( new StringReader(writer.toString()) );
		}
		// Write the Result into the writer. outs is an OutputStream
		writer= new OutputStreamWriter(outs);
		StreamResult transformedXmlResult = new StreamResult();
		transformedXmlResult.setWriter( writer );

		// Create a new instance of a TransformerFactory and create 
		// a special transformer with the given XSLT Stylesheet.
		TransformerFactory transFact = TransformerFactory.newInstance();
		Templates templates = transFact.newTemplates(xsltSource);
		Transformer trans = templates.newTransformer();
		// Perform the transformation.
		trans.transform(xmlSource, transformedXmlResult);
	  } else {
		//...
	  }
} catch (Throwable e) {
	writer.write("Some text");
}


ich hoffe der hilft jemanden weiter. Also jetzt zu meinem Problem.

Also ich habe einen StringWriter mit Namen writer (dieser wird der Methode übergeben). Dort stehen die nicht transformierten xml-Daten drin. Aus diesem hol ich mir den String und mache daraus die Quelle xmlSource für den Transformer.
Dann erstelle ich einen OutputStreamWriter, welcher in eine Datei schreibt. Dieser ist das Result transformedXmlResult des Transformers. Soweit so gut. Wenn ich gültige xml-Daten und ein gültiges Stylesheet habe, funktioniert auch alles wunderbar. Die transformierten Daten werden in den Writer geschrieben. Habe ich allerdings ein ungültiges Stylesheet, so wird in der Zeile "Templates templates = transFact.newTemplates(xsltSource);" eine Exception geworfen. Diese fange ich ab und möchte anstatt der transformierten Daten einen Warnhinweis schreiben ( writer.write("Some text"); ). Allerdings wird dieser Text nicht geschrieben, zumindest erscheint er nicht in der Datei.

Weiß jemand auf Anhieb woran es liegen könnte. Ich blick da aktuell nicht durch.

Dieser Beitrag wurde von Junktyz bearbeitet: 12. Februar 2008 - 15:12

0

Anzeige



#2 Mitglied ist offline   r0q 

  • Gruppe: Mitglieder
  • Beiträge: 10
  • Beigetreten: 07. Februar 08
  • Reputation: 0

geschrieben 01. März 2008 - 22:15

Probiers mal mit close() oder flush().
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0