Hallo!
Ich möchte Daten aus einer XML-Datei einlesen und anschliessend in einer Datenbank speichern.
Für das Einlesen der XML Datei möchte ich Jdom verwenden, komme da aber gerade nicht so wirklich weiter.
Eine Beispiel XML-Datei sieht so aus:
Es können mehrere Components vorhanden sein. Innerhalb der Components gibt es einen Header-Block und ein oder mehrere Class-Blöcke.
Um mit Jdom die Datei zu lesen gehe ich so vor:
Beim Zugriff auf das Child "Header" fliegt mir eine NullPointerException um die Ohren.
Die getChild() Methode liefert jedes mal NULL, obwohl der übergebene String (im Beispiel "HEADER") im DOM-Baum dort sein müsste.
Was verstehe ich da falsch? Wie kann ich vorgehen?
Ich möchte Daten aus einer XML-Datei einlesen und anschliessend in einer Datenbank speichern.
Für das Einlesen der XML Datei möchte ich Jdom verwenden, komme da aber gerade nicht so wirklich weiter.
Eine Beispiel XML-Datei sieht so aus:
Java:
<?xml version="1.0" encoding="iso-8859-1"?>
<DATA>
<COMPONENT counter="1">
<HEADER>
<META_DATA>
<PACKAGE_ID>001</CLASS_ID>
<PACKAGE_TYPE>1</CLASS_TYPE>
</META_DATA>
<AUTHOR_DATA>
<REFERENCE_ID>1</REFERENCE_ID>
<AUTHOR>
<AUTHOR_ID>1</SHIPMENT_ID>
<NAME>MyName</NAME>
</AUTHOR>
</AUTHOR_DATA>
</HEADER>
<CLASS>
<CLASS_DATA>
<CLASS_ID>123</CLASS_ID>
<CLASS_NAME>MyClass</CLASS_NAME>
</CLASS_DATA>
</CLASS>
</COMPONENT>
</DATA>
Um mit Jdom die Datei zu lesen gehe ich so vor:
Java:
Document doc = null;
FIle f = new FIle("datei.xml");
try {
SAXBuilder builder = new SAXBuilder();
doc = builder.build(f);
Element element = doc.getRootElement();
List<Element> componentList = (List<Element>)element.getChildren();
for(Element component : componentList) {
// So würde ichs gerne machen:
Element header = component.getChild("HEADER");
String packageId = header.getChild("META_DATA").getChildText("PACKAGE_ID");
// ...
}
Beim Zugriff auf das Child "Header" fliegt mir eine NullPointerException um die Ohren.
Die getChild() Methode liefert jedes mal NULL, obwohl der übergebene String (im Beispiel "HEADER") im DOM-Baum dort sein müsste.
Was verstehe ich da falsch? Wie kann ich vorgehen?