XML in Java einlesen

Diskutiere XML in Java einlesen im Developer Network Forum im Bereich Hardware & Software Forum; Hi, hab mal eine Frage zu XML in Java einlesen. Ich habe folgendes XML file (Aufbau): <strategy> <start> <name>offense1</name>...
  • XML in Java einlesen Beitrag #1
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
Hi, hab mal eine Frage zu XML in Java einlesen. Ich habe folgendes XML file (Aufbau):

Code:
<strategy>
    <start>
        <name>offense1</name>
        <formation>
            <def>3</def>
            <mid>4</mid>
            <att>4</att>
        </formation>
        <bounds>
            <defbounds>-54,0,-32,32</defbounds>
            <midbounds>-35,35,-32,32</midbounds>
            <offbounds>0,54,-32,32</offbounds>
        </bounds>
        <offsets>
            <defoffsetX>1,2,3</defoffsetX>
            <defoffsetY>1,2,3</defoffsetY>
            <midoffsetX>1,2,3,4</midoffsetX>
            <midoffsetY>1,2,3,4</midoffsetY>
            <offoffsetX>1,2,3,4</offoffsetX>
            <offoffsetY>1,2,3,4</offoffsetY>
        </offsets>
    </start>
    <start>
        <name>defense1</name>
usw.....


Das ist in der XML Datei, diese möchte ich nun in Java einlesen und die werte in die zugehörigen Klassen speichern.

Zurzeit versuche ich das gerade mit den Java internen parsern:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

aber in den Beispielen im Netz finde ich immer nur:

if (event.asStartElement().getName().getLocalPart() == ("xxxx")) {
event = eventReader.nextEvent();
overwriteStuff(event.asCharacters().getData());
continue;
}

das funzt ja aber nur wenn alles in der gleichen ebene ist oder? ich habe ja mehr verzweigungen wegen den children von den jeweiligen tags... Das asStartElement macht mir da etwas Sorgen


Cu


Penecho
 
  • XML in Java einlesen Beitrag #2
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Ob der Vergleich im IF funktioniert, bezweifle ich mal.

Wenn Du keine riesigen XML-Dateien hast, dann würde ich die als DOM in den Speicher laden. Ich nehme dazu immer JDOM und die Abfragen dann mit XPath. Geht allerdings auch mit Boardmitteln.

Näheres dazu hier: http://openbook.galileocomputing.de/javainsel8/javainsel_15_001.htm
 
  • XML in Java einlesen Beitrag #3
ZockerM

ZockerM

Verdienter Ex-Mod
Dabei seit
25.11.2000
Beiträge
2.722
Reaktionspunkte
0
Ort
/root
Hallo,

zu einem XML-Dokument ist eigentlich immer auch die passende XSD-Datei praktisch. Wenn du die hast, kannst du recht einfach mittels JAXB die XML-Date einlesen und die passenden Objekte erzeugen.

gruß ZockerM
 
  • XML in Java einlesen Beitrag #4
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Die XSD-Datei dient doch nur zum Verifizieren der XML-Datei. Wenn die XML-Datei richtig ist, brauche ich nicht unbedingt die XSD.
Es gibt bei Java 2 populäre Möglichkeiten XML einzulesen. Einmal mit SAX und mit (J)DOM. Soll das Ziel sein die ganze Datei im Speicher zu haben, würde ich JDOM vorziehen. JDOM verwendet allerdings den SAX-Parser um die Dokumentstruktur aufzubauen.
 
  • XML in Java einlesen Beitrag #5
ZockerM

ZockerM

Verdienter Ex-Mod
Dabei seit
25.11.2000
Beiträge
2.722
Reaktionspunkte
0
Ort
/root
Hallo,

Die XSD-Datei dient doch nur zum Verifizieren der XML-Datei. Wenn die XML-Datei richtig ist, brauche ich nicht unbedingt die XSD.
Jain, das gilt nur, wenn die XML-Datei auch alle Fälle beinhaltet. ;)
Wie gesagt, ich habe gute Erfahrungen mit JAXB gemacht. Es werden automatisch alle passenden Klassen erzeugt und beide "Richtungen" (Objekte -> XML, XML -> Objekte) funktionieren mit wenigen Zeilen Code.

gruß ZockerM
 
  • XML in Java einlesen Beitrag #6
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
Also ich habe jetzt mal diesen Amsatz genommen für den XML Parser mit Java internen mitteln:

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/


Cu



Penecho
 
Thema:

XML in Java einlesen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben