# Elementbaum in String umwandeln



## Guest (27. Sep 2006)

Moin,

ich habe eine Frage. Wie kann ich einen kompletten XML-Baum in String umwandeln um z. B. in DB zu speichern? 
Beispiel:

```
<abc>
    <a>
        <aa>aa</aa>
    </a>
    [b]B[/b]
    <c>C</c>
</abc>
```
in Java habe ich dann:

```
...
            root = doc.getRootElement();
            Element e = root.getChild("a");
//            String s = e.gibMirKompletteStruktur AlsString();
            // Hier will ich komplett e als String haben
            // so: <a><aa>aa</aa></a>
...
```
Kann mit da jemand helfen. Ist sicher sehr simpel selbst zu implementieren, aber ich will eine bestehende Methode aufrufen. Vielen Dank.


----------



## clemson (27. Sep 2006)

arbeitest du mit jdom? denn dann funktioniert das ganze mittels dem XMLOutputter


----------



## Guest (28. Sep 2006)

ja. ich benutze jdom. habe es auch jetzt hinbekommen vielen dank. hier nochmal der zugehörige code, falls jemand es braucht.

```
...
XMLOutputter outputter = new XMLOutputter();
String s =outputter.outputString(element);
...
```


----------



## spunti (20. Nov 2006)

Hallo,

weiß jemand wie ich das mit dem DOM von Java 1.4.2 erreiche, also ohne JDOM?

danke und grüße
spunti


----------



## Roar (20. Nov 2006)

mit den javax.xml.transform klassen, such mal nach Transformer im forum.


----------



## spunti (20. Nov 2006)

danke, ich hab jetzt erst mal folgenden (freakigen) code als lösung:


```
Document documentToWriteOut = builder.newDocument();
Node nodeToWriteOut = documentToWriteOut.importNode(currentClassNode, true);
documentToWriteOut.appendChild(nodeToWriteOut);
							       
TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformerDummy = transformerFactory.newTransformer();

DOMSource domSourceToWriteOut = new DOMSource(documentToWriteOut); 
StringWriter stringWriterOutput=new StringWriter();
StreamResult streamResultOutput = new StreamResult(stringWriterOutput);
							
transformerDummy.transform(domSourceToWriteOut, streamResultOutput);
String content=stringWriterOutput.toString();
content=content.substring(content.indexOf(">")+1);
```


----------

