[AS3] XML Datei auswerten

SCIPIO-AEMILIANUS

aka Dubdidadu
Ich hab eine Frage, wie ich am geschicktesten eine XML-Datei folgendes Aufbaus auslese:
<school>
<pupil firstName="Hans1" lastName="Jung4" grade="7" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans2" lastName="Jung3" grade="7" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans3" lastName="Jung2" grade="7" letter="B" image="hansjung.jpg"/>
<pupil firstName="Hans4" lastName="Jung1" grade="7" letter="B" image="hansjung.jpg"/>
<pupil firstName="Hans1" lastName="Jung4" grade="8" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans2" lastName="Jung3" grade="8" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans3" lastName="Jung2" grade="8" letter="B" image="hansjung.jpg"/>
<pupil firstName="Hans4" lastName="Jung1" grade="8" letter="B" image="hansjung.jpg"/>
<pupil firstName="Hans1" lastName="Jung4" grade="9" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans2" lastName="Jung3" grade="9" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans3" lastName="Jung2" grade="9" letter="B" image="hansjung.jpg"/>
<pupil firstName="Hans4" lastName="Jung1" grade="9" letter="B" image="hansjung.jpg"/>
</school>
Es geht jetzt darum eine Art Menü daraus zu basteln.
Am Anfang soll durch eine Funktion alle grade-Attribute ausgelesen werden und die doppelten entfernt werden, dass als Rückgabe folgendes als XMLList herauskommt:
<pupil firstName="Hans1" lastName="Jung4" grade="7" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans1" lastName="Jung4" grade="8" letter="A" image="hansjung.jpg"/>
<pupil firstName="Hans1" lastName="Jung4" grade="9" letter="A" image="hansjung.jpg"/>
Dies brauch ich da ich die anderen Attribute auch noch benötige.

Was ich eigentlich wissen will ist, ob es einen kürzeren weg gibt als ne eigene Suchfunktion zu schreiben, die jeden einzelnen eintrag gegen eine bestehende Liste mit bereitsgefundenen Ergebnissen abgleicht.
Vielen Dank im voraus.


##EDIT##

Eine kleine Erweiterung:
Code:
var currentXML:XML=<school>
    <pupil firstName="Hans1" lastName="Jung4" grade="7" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans2" lastName="Jung3" grade="7" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans3" lastName="Jung2" grade="7" letter="B" image="hansjung.jpg"/>
    <pupil firstName="Hans4" lastName="Jung1" grade="7" letter="B" image="hansjung.jpg"/>
    <pupil firstName="Hans1" lastName="Jung4" grade="8" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans2" lastName="Jung3" grade="8" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans3" lastName="Jung2" grade="8" letter="B" image="hansjung.jpg"/>
    <pupil firstName="Hans4" lastName="Jung1" grade="8" letter="B" image="hansjung.jpg"/>
    <pupil firstName="Hans1" lastName="Jung4" grade="9" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans2" lastName="Jung3" grade="9" letter="A" image="hansjung.jpg"/>
    <pupil firstName="Hans3" lastName="Jung2" grade="9" letter="B" image="hansjung.jpg"/>
    <pupil firstName="Hans4" lastName="Jung1" grade="9" letter="B" image="hansjung.jpg"/>
</school>;
function searchItems(grade:String,letter:String,firstName:String,lastName:String):XML{
    var xmlBuf:XML=new XML();
    var i:int=0;
    var u:int=0;
    var z:int=0;
    var xmlOut:XML=new XML();
    if(grade==""){
        // search through all elements inside FAMILY
        for each (var object:XML in currentXML.*) {
            u=0;
            z=0;
            if (object.name() == "pupil") {
                while(u<xmlOut.child("*").length()){
                    trace(object.@grade);
                    if(object.@grade==xmlOut.child("*")[u].@grade){
                        z+=1;
                    }
                    u++;
                }
                trace(xmlOut);
                if(z==0){
                    xmlOut.appendChild(object);
                }
            }
        }    
    }
    return xmlOut;
}

trace(searchItems("","","",""));

Dies soll oben beschriebene Aufgabe verrichten. Macht es jedoch nicht. Was ist an dem ganzen falsch?
 

Neue Beiträge

Zurück