in XML-Datei mit DOM nach speziellen Elementen suchen

StefanDD

Grünschnabel
Hallo!
Ich brauche etwas Hilfe zu meinem xml-such-problem.
Also ich habe eine xml-Datei z.b. mit folgender Struktur:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Adresse>
<Datensatz>
<Name>
<Nachname>Schwarz</Nachname>
<Vorname>Sabine</Vorname>
</Name>
<Strasse>Blauweg 4</Strasse>
<PLZ>53000</PLZ>
<Ort>Bonn</Ort>
<Telefon>0228-99999999</Telefon>
</Datensatz>
<Datensatz>
<Name>
<Nachname>Blau</Nachname>
<Vorname>Sabine</Vorname>
</Name>
<Strasse>Rotweg 4</Strasse>
<PLZ>53000</PLZ>
<Ort>Bonn</Ort>
<Telefon>0228-88888888</Telefon>
</Datensatz>
</Adresse>

Nun moechte ich per DOM nach einem speziellen Elementwert suchen (hier z.b. 'Blau' als Nachname).
In meiner xml-Datei wird es zu dem Suchbegriff mehrere 'Fundstellen' geben.
Wenn was passendes gefunden wurde, brauch ich das komplette Element (hier 'Datensatz') mit seinem Inhalt.
Wie kann ich die gefundenen Elemente am besten ablegen/zwischenspeichern, damit ich die Inhalte dann spaeter verwenden kann (in einer jsp).

Ich hoffe, das ist halbwegs verstaendlich.
Ueber ein paar helfende Zeilen Code wuerde ich mich sehr freuen.
 
Bist du dir sicher das du das nur mit DOM lösen möchtest?

Guck dir mal eine höherwertigere API an ..
Grob gesagt irgendeine mit XPath Support.

Dann hämmerst du nämlich einfach das hier rein:
/Adresse/Datensatz[Name/Nachname='Blau']

Und voila dein Datensatz fällt raus.

Um XPath zu begreifen empfehle ich dir dieses Tool: http://www.purpletech.com/xpe
(Site scheint im Moment nicht erreichbar zu sein)

XPath selbst kannst du auf verschiedene Weise ausführen. Ich selbst bevorzuge hierfür jdom.org

Einfach mal die JavaDoc zu org.jdom.xpath.XPath#selectSingleNode(java.lang.Object context, java.lang.String path) ;
ansehen.

hth
cybi
 
Zurück