Komfortabel XML Dokumente schreiben und lesen

ProChris

Mitglied
Hallo,

ich kenne mich mit XML ganz gut aus, jedoch nicht mit einer Möglichkeit XML Dokumente mittels Java zu generieren oder zu lesen. Ich habe mich hier im Forum bereits durch den einen oder andern Beitrag gelesen und noch nicht so richtig fündig geworden. Kennt Ihr eine Möglichkeit ein XML Dokument nicht über eine Baumstruktur auszulesen?

Mein XML sieht wie folgt aus:
[XML]
<person id = "1">
<firstname>Pro</firstname>
<lastname>Chris</lastname>
<is>
<programmer status = "1" />
<hobbycook status = "3" />
...
</is>
</person>
<person id = "2">
<firstname>Max</firstname>
<lastname>Muster</lastname>
<is>
<programmer status = "0" />
<cook status = "0" />
...
</is>
</person>
...
[/XML]

Diese Struktur möchte ich in eine Java Objektstruktur transferieren.

Java:
public class Person {
  private int id;
  private String firstname;
  private String lastname;
  private ArrayList<IS> is = new ArrayList<is>();
  // ...
}

Achso, vielleicht sollte ich dazusagen, dass ich keine zusätzlichen Bibliotheken (JARs) nutzen möchte.

Viele Grüße

ProChris
 
Kennt Ihr eine Möglichkeit ein XML Dokument nicht über eine Baumstruktur auszulesen?
Bin nicht sicher, ob ich es ganz verstanden habe. Meinst Du, Du willst kein DOM im Hauptspeicher haben? Falls ja, und unter der Voraussetzung, dass weitere Libs nicht in Frage kommen, bleibt Dir nur SAX-Parsing von JAXB. Das ist Bestandteil der Java Standard Edition.
 
Guybrush Threepwood hat gesagt.:
Du meinst Serialisierung und Deserialisierung, oder?
Wenn ich das Problem des TOs richtig verstanden habe, wären die richtigen Stichworte hier wohl eher Marshalling/Unmarshalling.
 
Hallo,

ich suche nach einer Möglichkeit einfach an die Inhalte in den XML Dokument zu kommen. Ich stelle mir in etwa so etwas vor:

xmldocument.getNode(1).getAttribute("id"); // gibt den Wert 1
xmldocument.getNode(2).getAttribute("id"); // gibt den Wert 2

xmldocument.getNode(1).getNode("firstname"); // gibt den Wert Pro
xmldocument.getNode(1).getNode("lastname"); // gibt den Wert Chris
...
[XML]
<person id = "1">
<firstname>Pro</firstname>
<lastname>Chris</lastname>
<is>
<programmer status = "1" />
<hobbycook status = "3" />
...
</is>
</person>
<person id = "2">
<firstname>Max</firstname>
<lastname>Muster</lastname>
<is>
<programmer status = "0" />
<cook status = "0" />
...
</is>
</person>
...[/XML]
 
Ah ok, dann ist JAXB etwas zu hoch angesetzt. Dort will man XML-Strukturen direkt in Java-Objkete überführen. Wenn du auf Werte in einem XML-Dokument -so wie von Dir beschrieben- zugreifen willst, dann brauchst Du einen DOM-Parser. Das JSE stellt Dir dafür die Klasse javax.xml.parsers.DocumentBuilder zur verfügung. Diese erzeugt Instanzen von org.w3.dom.Document. In diesem kannst du dann über die Elemente und Attribute browsen.
 

Neue Themen


Zurück
Oben