# zugriff auf gewuenschte elemente klapp nicht.



## phips.net (28. Apr 2005)

hallo alle,
ich soll ein xml parsen und knabber an einer mglk., auf bestimmte daten zuzugreifen.
hier mein ansatz einer methode, darunter ein der auszug aus dem entsprechenden xml file;
was passieren soll, steht im kommentar. 1000dank schonmal vorab.
gruß,
.p

//Liefert die BildID als int
public int getPic(String varID) {
    Hashtable picIDs = new Hashtable();
    Element header = root.getChild("header");
    List drafts = header.getChildren("draft");
    Iterator drafts_it = drafts.iterator();
    while(drafts_it.hasNext()){
        Element current = (Element)drafts_it.next();
        List draft_variants = current.getChildren("variant");
        Iterator draft_variants_it = draft_variants.iterator();
        while(draft_variants_it.hasNext()){
            Element current2 = (Element)draft_variants_it.next();
            picIDs.put(current2.getAttribute("idVar"), current2.getAttribute("BildID"));
        }
    }
    return picIDs.get(varID);    
}

problem1: der rueckgabewert ist offensichtlich kein int...
problem2: ich weiss nicht, obs so ueberhaupt geht...


das xml sieht so aus:
<edition>
    <header>
    	<id>1</id>
    	<title>Klage</title>
    	<autor>anonymus</autor>
        <draft draftName="Fassung *B">
            <variant idVar="MÃ¼nchen 34" bildID="234"/>
            <variant idVar="St. Gallen" bildID="352"/>
            <variant idVar="Wien" bildID="890"/>
        </draft>
        <draft draftName="Fassung *C">
            <variant idVar="Donaueschingen 63" bildID="123"/>
            <variant idVar="Donaueschingen 64" bildID="759"/>
            <variant idVar="Sterzing" bildID="049"/>
            <variant idVar="Genf" bildID="6548"/>
        </draft>
     </header>
</edition>

...wobei es einen oder mehrere draft bloecke geben kann....


----------



## Bleiglanz (28. Apr 2005)

problem1: das sind immer Strings 

wenn du java1.5 hast, verwende lieber die XPath Maschinerie


----------



## phips.net (28. Apr 2005)

XPath Maschinerie sagt mir nichts. was ist das ?
ja, ich hab java 1.5

aber selbst wenn der rueckgabewert ok ist, weiss ich nicht, ob 
ich mit meinen beiden schleifen tatsaechlich an die gewuenschten BildID s komme....


----------



## Bleiglanz (28. Apr 2005)

ja eben, deshalb lern XPath!

und dann das Package javax.xml.xpath


Ansonsten im DOM: Element getElementById(String elementId)


----------

