# JDOM SAXBuilder einlesen



## Korax (6. Dez 2006)

Hi,
Ich will mit einem SAXBuilder über eine URL ein XML Dokument einlesen, die Datei findet er auch und einlesen kann er es auch. Ich bekomme dabei aber leider einen Fehler an dem ich jetzt seit Stunden sitze, verstehe einfach nicht warum: _The element "chart" could not be added as the root of the document: The Content already has an existing parent document_ Dazu muss ich sagen, dass die Datei in etwa wie folgt aussieht: <chart ...> <tag1..></tag1>...</chart>
Chart ist daher das "Root" Element aus der eingelesenen XML Datei.


```
Element e = new Element("SCATTERCHART");
		SAXBuilder parser = new SAXBuilder();
		try {
			Document doc = parser.build("http://localhost/UMDGUI/daten.xml");
			e = doc.getRootElement();
		} catch (JDOMException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		return e;
```

Hat jemand eine Ahnung wie die XML Datei aussehen muss, damit ich sie einlesen kann mit dem SAXBuilder?

lg Andi


----------



## Corpse (6. Dez 2006)

Bist du sicher, das der Fehler in diesem Snippet auftritt, da hier kein Element in das Dokument hinzugefügt wird. Die Fehlermeldung allerdings schreit ja beim hinzufügen eines Elements.


----------



## Korax (11. Dez 2006)

Ja ist leider sicher aus diesem Snippet, habs schon oft probiert, debuggt usw...
Also wenn ich mich nicht irre wird dem Dokument schon ein Element hinzugefügt, es wird zuerst ein Document doc erstellt und da wird dann der Content (die Elemente) rein geladen. Ich werde mal in die parser Klasse reinschauen wenn ich wieder Zeit habe.

Thx für die Antwort!

lg Andi


----------



## clemson (11. Dez 2006)

was willst du eigentlich genau machen? du willst dir das root element aus dem eingelesenen xml holen, und das in den nächsten schritten bearbeiten, oder?


```
Document doc = builder.build("bla");
Element root = doc.getRootElement();

// root abtrennen
root.detach();

// jetzt ist root losgelöst und kann bearbeitet bzw. als neues root gesetzt werden
```


----------



## Korax (11. Dez 2006)

Eigentlich will ich nur das XML Dokument als JDOM einlesen, es wäre mir lieber wenn es kein nicht vom Typ _Document_ wäre, aber leider gibt der _Parser_ keine _Elemente_ zurück :-/
Ich erstelle daher ein _Document _in der Hoffnung, dass ich mit dem _Parser _das XML dann als _Elemente _in diesem Document habe. Dann lass ich mir das _RootElement _geben und kann mit dem arbeiten.


----------



## clemson (11. Dez 2006)

und damit du mit dem element arbeiten kannst (sprich das element neuen elementen zuweisen kannst, musst du es vorher von dessen parent ablösen, sprich detach'en).


----------



## Korax (21. Dez 2006)

Danke für die Antwort, ich war ein Weilchen mit anderem beschäftigt, ich probiers auf jedenfall und gebe Rückmeldung!

=)


----------

