# XML Transformer als List



## Kababär (18. Aug 2016)

Hi,

ich benutze derzeit javax.xml.transform, um xml-Dateien mittels vorgeschriebenen xslt-Dateien in "Enddateien" umzuwandeln.
Allerdings müsste da zwischendurch noch etwas passieren, also wäre es ganz praktisch, wenn ich nicht direkt die Datei hätte, sondern eine List<String>, so dass ich auf dieser List arbeiten kann, bevor ich die Datei schreibe.

Derzeit sieht mein Code so aus:

```
public static void transform(String sourcePath, String xsltPath,
          String resultDir) {

        System.setProperty("javax.xml.transform.TransformerFactory",
              "net.sf.saxon.TransformerFactoryImpl");

        TransformerFactory tFactory = TransformerFactory.newInstance();
        try {
            Transformer transformer
                  = tFactory.newTransformer(new StreamSource(new File(xsltPath)));

            transformer.transform(new StreamSource(new File(sourcePath)),
                  new StreamResult(new File(resultDir)));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
```

GIbt es eine Möglichkeit, irgendwie aus dem StreamResult eine List<String> zu basteln oder so?


----------



## Flown (18. Aug 2016)

Ich weiß zwar nicht warum du die Transformationsregeln nicht umschreibst, damit du das verarbeiten kannst, aber du könntest dem StreamResult ein `StringWriter` übergeben und dann den String auslesen und bei den Zeilenumbruch wieder splitten und das dann in eine Liste werfen - möglich ja, sinnvoll eher nein.


----------



## Kababär (18. Aug 2016)

Wie ändere ich denn die Transformationsregeln? 
Das klingt nämlich um einiges besser


----------



## Flown (18. Aug 2016)

vorgeschriebenen xslt-Dateien ändern?


----------



## Kababär (18. Aug 2016)

Hm das wird nicht möglich sein, weil die Dateien nicht von mir vorgeschrieben werden.


----------



## Flown (18. Aug 2016)

Eigene xslt schreiben die dir das prozessiert wie du es willst, nachdem die andere wirksam war?


----------



## Kababär (19. Aug 2016)

Wie würde man so was in java realisieren? Dazu hab ich leider nichts gefunden :/


----------

