Lesen/Schreiben von XML Datei

Maxim6394

Bekanntes Mitglied
Ich will eine hierarchische struktur in eine xml datei schreiben, dabei sollten beliebig viele nodes als childs von einer parent node vorhanden sein können.
bis jetzt sieht das bei mir so aus:
[XML]<Root>

<Node ID="0" name="Node" localTranslation="(0.0, 0.0, 0.0)"/>

<Node ID="1" name="Node" localTranslation="(0.0, 0.0, 0.0)"><Node ID="0" name="Node" localTranslation="(0.0, 0.0, 0.0)"/><Node ID="1" name="Node" localTranslation="(0.0, 0.0, 0.0)"/>
</Node>

<Node ID="2" name="Node" localTranslation="(0.0, 0.0, 0.0)"><Node ID="0" name="Node" localTranslation="(0.0, 0.0, 0.0)"/>
</Node>

</Root>[/XML]

das einlesen funktioniert nicht so gut, da wird zum beispiel angezeigt dass node mit ID=1 4 childs hat, die node mit der ID=2 hat 2, was natürlich nicht stimmt. hab ich beim schreiben was falsch gemacht oder wird das falsch ausgelesen?
 
Womit liest du es ein?

Ich empfehle gern JaxB - weil es so schön einfach ist.
Wenn du es mächtiger haben willst, nimm EMF - das ist auf alle Fälle flexibler.
 
auch wenn ich ID entferne wird es noch falsch angezeigt. eines der elemente hat zum beispiel genau 2 childs, das ist auch im browser richtig zu erkennen. in dieser for schleife wird aber für node nr.2 4 angezeigt:

Java:
    for(int s=0; s<tags.getLength() ; s++){
System.out.println(tags.item(s).getChildNodes().getLength()+"|"+tags.item(s).getNodeName());
                 }

für diese xml datei:
[XML]<Root><Node name="Node" localTranslation="(0.0, 0.0, 0.0)"></Node>
<Node name="Node" localTranslation="(0.0, 0.0, 0.0)"><Node name="Node" localTranslation="(0.0, 0.0, 0.0)"></Node>
<Node name="Node" localTranslation="(0.0, 0.0, 0.0)"></Node>
</Node>
<Node name="Node" localTranslation="(0.0, 0.0, 0.0)"></Node>
</Root>
[/XML]
 
ich bin immernoch die ganze zeit am testen. ich hab zum beispiel folgende xml datei:
[XML]<Root> </Root>[/XML]

man könnte denken es gibt als anzahl der child nodes von root 0 aus, aber es kommt immer 1, was ich überhaupt nicht verstehe. dann hab ich versucht den nodename auszugeben:
Java:
  System.out.println(root.getFirstChild().getNodeName());
es gibt folgendes aus:

jemand ne idee was zum teufel da läuft? ich benutze übrigens org.w3c.dom
 
Zuletzt bearbeitet:
Und da gäbe es noch ein paar turboeinfache Lösungen wie java.beans.XMLEncoder oder XStream, sofern es nur darum geht xml zu serialisieren oder zu deserialisieren.
 
Zuletzt bearbeitet:

Zurück
Oben