# Probleme mit Transformer und StreamResult



## Robsta10 (24. Apr 2006)

Hallo Leute!

Und zwar versuche ich mit der Klasse Transformer eine XSLT Transformation durchzuführen und das Ergebnis in eine Datei zu speichern. Das ganze funktioniert bei mir im Prinzip so:

```
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(targetFile);
transformer.transform(source, result);
```
Alles okay, nur hat die Sache einen sehr blöden Hacken bzw. ich mach noch irgendwas falsch. Und zwar wird die Datei erzeugt aber nicht befüllt und erst wenn ich meine Applikation schließe befindet sich das Ergebnis in der Datei.

Ich bräuchte das Ergebnis aber während der Laufzeit in der Datei, da diese von einem externen Tool zur Vorschau verwendet wird.

Danke für jede Hilfe,

liebe Grüße
Robsta


----------



## Murray (24. Apr 2006)

Da das StreamResult nicht direkt geflushed werden kann, muss man möglicherweise einen kleinen Umweg machen:

```
DOMSource source = new DOMSource(document);
FileWriter fw = new FileWriter( targetFile);
StreamResult result = new StreamResult( fw);
transformer.transform(source, result);
fw.flush();
```


----------



## Robsta10 (25. Apr 2006)

Danke für die rasche Hilfe. Hat leider auch nichts gebracht. Noch immer gleiches Verhalten wie zuvor.

Als womöglich wichtige Zusatzinformation möchte ich noch erwähnen, dass ich eine RCP (Rich Client Platform) Anwendung schreibe, d.h. das Ganze basiert auf dem Eclipse Framework.  

Kann es damit zu tun haben?

LG,
Robsta10


----------



## piluzzo- (28. Apr 2006)

> DOMSource source = new DOMSource(document);
> StreamResult result = new StreamResult(targetFile);
> transformer.transform(source, result);



Hi,
probier mal das hier:


```
DOMSource source = new DOMSource(document);
FileOutputStream fos = new FileOutputStream(new File("pfad"));
StreamResult result = new StreamResult(fos);

transformer.transform(source, result);

fos.flush();
fos.close();

// wer weiß? :-) ... hab leider keine Möglichkeit das zu testen. Hatte mal ein ähnliches Problem.
OutputStream os = result.getOutputStream();
os.flush();
os.close();
```


----------



## Guest (28. Apr 2006)

Danke, ich hab lediglich das close vergessen. Ein typischer Anfängerfehler, der ich ja bin.

Danke nochmal,
Robsta


----------

