Hallo zusammen,
ich arbeite gerade zum ersten Mal mit JDOM und stoße leider auf ein paar Probleme, die mir auch Google und die Suchfunktion nicht lösen konnten.
Ich habe folgende XML Datei pbx.xml:
[XML]<?xml version="1.0" encoding="utf-8"?>
<info>
<user cn="Dritter Third" id="3" e164="103" dn="Dritter T." h323="Dritter T."><device hw="IP110-15-71-cf"/><device hw="Dritter T."/></user>
<user cn="Erster First" id="1" e164="101" dn="Erster F." h323="Erster F."><device hw="IP222-2f-05-08"/><device hw="Erster F."/></user>
<user cn="Fuenfter Fifth" id="5" e164="105" dn="Fuenfter F." h323="Fuenfter F."><device hw="Fuenfter F."/></user>
<user cn="Sechster Sixth" id="6" e164="106" dn="Sechster S." h323="Sechster S."><device hw="Sechster S."/></user>
<user cn="Vierter Fourth" id="4" e164="104" dn="Vierter F." h323="Vierter F."><device hw="IP240-27-07-88"/></user>
<user cn="Zweiter Second" id="2" e164="102" dn="Zweiter S." h323="Zweiter S."><device hw="IP222-2f-00-71"/><device hw="Zweiter S."/></user>
</info>[/XML]
Diese möchte ich gern in mein Javaprogramm einlesen um anschließend die einzelnen User mit ihren Attributen cn, id, e164 usw. weiterzuverarbeiten. Bisher habe ich es immerhin geschafft die komplette Datei einzulesen und mir die einzelnen Elemente (ohne Attribute) anzeigen zu lassen.
Als Ausgabe erhalte ich Folgendes:
Ich würde mich freuen, wenn mir jemand weiterhelfen kann.
Viele Grüße
ich arbeite gerade zum ersten Mal mit JDOM und stoße leider auf ein paar Probleme, die mir auch Google und die Suchfunktion nicht lösen konnten.
Ich habe folgende XML Datei pbx.xml:
[XML]<?xml version="1.0" encoding="utf-8"?>
<info>
<user cn="Dritter Third" id="3" e164="103" dn="Dritter T." h323="Dritter T."><device hw="IP110-15-71-cf"/><device hw="Dritter T."/></user>
<user cn="Erster First" id="1" e164="101" dn="Erster F." h323="Erster F."><device hw="IP222-2f-05-08"/><device hw="Erster F."/></user>
<user cn="Fuenfter Fifth" id="5" e164="105" dn="Fuenfter F." h323="Fuenfter F."><device hw="Fuenfter F."/></user>
<user cn="Sechster Sixth" id="6" e164="106" dn="Sechster S." h323="Sechster S."><device hw="Sechster S."/></user>
<user cn="Vierter Fourth" id="4" e164="104" dn="Vierter F." h323="Vierter F."><device hw="IP240-27-07-88"/></user>
<user cn="Zweiter Second" id="2" e164="102" dn="Zweiter S." h323="Zweiter S."><device hw="IP222-2f-00-71"/><device hw="Zweiter S."/></user>
</info>[/XML]
Diese möchte ich gern in mein Javaprogramm einlesen um anschließend die einzelnen User mit ihren Attributen cn, id, e164 usw. weiterzuverarbeiten. Bisher habe ich es immerhin geschafft die komplette Datei einzulesen und mir die einzelnen Elemente (ohne Attribute) anzeigen zu lassen.
Java:
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.XMLOutputter;
class JDOMLesen {
public static void main(String[] args) {
File file = new File("c:\\pbx.xml");
try {
// Das Dokument einlesen
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(file);
XMLOutputter fmt = new XMLOutputter();
// komplettes Dokument ausgeben
fmt.output(doc, System.out);
// Wurzelelement ausgeben
Element root = doc.getRootElement();
System.out.println("\nWurzelelement: " + root);
// Wurzelelementnamen ausgeben
System.out.println("Rootelement: " + root.getName());
Element user = root.getChild("user");
System.out.println("Kind1: " +root.getChild("user"));
Element device = user.getChild("device");
System.out.println("Kind2: " + device);
// Eine Liste aller direkten Kindelemente eines Elementes erstellen
List users = root.getChildren("user");
System.out.println("Childelement: "
+ ((Element) users.get(0)).getName());
System.out.println(users);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Als Ausgabe erhalte ich Folgendes:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<info>
<user cn="Dritter Third" id="3" e164="103" dn="Dritter T." h323="Dritter T."><device hw="IP110-15-71-cf" /><device hw="Dritter T." /></user>
<user cn="Erster First" id="1" e164="101" dn="Erster F." h323="Erster F."><device hw="IP222-2f-05-08" /><device hw="Erster F." /></user>
<user cn="Fuenfter Fifth" id="5" e164="105" dn="Fuenfter F." h323="Fuenfter F."><device hw="Fuenfter F." /></user>
<user cn="Sechster Sixth" id="6" e164="106" dn="Sechster S." h323="Sechster S."><device hw="Sechster S." /></user>
<user cn="Vierter Fourth" id="4" e164="104" dn="Vierter F." h323="Vierter F."><device hw="IP240-27-07-88" /></user>
<user cn="Zweiter Second" id="2" e164="102" dn="Zweiter S." h323="Zweiter S."><device hw="IP222-2f-00-71" /><device hw="Zweiter S." /></user>
</info>
Wurzelelement: [Element: <info/>]
Rootelement: info
Kind1: [Element: <user/>]
Kind2: [Element: <device/>]
Childelement: user
[[Element: <user/>], [Element: <user/>], [Element: <user/>], [Element: <user/>], [Element: <user/>], [Element: <user/>]]
Ich würde mich freuen, wenn mir jemand weiterhelfen kann.
Viele Grüße
Zuletzt bearbeitet: