+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Nur bestimmte ChildNodes aus XML lesen

  1. #1
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591

    Nur bestimmte ChildNodes aus XML lesen

    Hallo zusammen.
    Ich arbeite grade an einer Shop Erweiterung un brauche dafür einige Daten aus dem Shop, die per XML an Flash übergeben werden sollen.

    Das auslesen etc funktioniert auch gut, allerdings weiss ich jetzt nicht genau wie ich in der XML nur bestimmte childNodes Dynamisch auslesen kann (Die ID wird übergeben)

    So sieht meine XML aus:

    Code:
    <doc>
    <195>
    <smallname>Name 1</smallname> 
    <bildpfad>../images/product_images/popup_images/195_0.jpg</bildpfad> 
    </195>
    
    
    <196>
    <smallname>Name 2</smallname> 
    <bildpfad>../images/product_images/popup_images/196_0.gif</bildpfad> 
    </196>
    
    
    </doc>

    Ich möchte nun an die childNodes von <195> kommen und zwar nicht über:

    Code:
    XMLproduktvar.firstChild.childNodes[0].childNodes[0].childNodes[0]
    sondern (Beispiel):

    Code:
    XMLproduktvar.firstChild.195.childNodes[0].childNodes[0]
    Das funktioniert aber natürlich nicht.

    Würde mich über Anregungen freuen.
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

  2. #2
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.485
    Hallo,

    dir bleibt nichts anderes übrig als die XML zu durchlaufen.

    AS2 Code
    PHP-Code:
    var my_xml:XML = new XML();
    my_xml.ignoreWhite true;
    var 
    verGleich:String "196";
    my_xml.onLoad = function(success:Boolean) {
        if (
    success) {
            
    trace(my_xml.childNodes.length);
            for (var 
    0i<=my_xml.childNodes.lengthi++) {
                
    suche my_xml.firstChild.childNodes[i].localName;
                (
    suche == verGleich) ? trace("mache was "+suche+" : "+verGleich) : trace("mache nichts "+suche+" : "+verGleich);
            }

        } else {
            
    trace("fehler");
        }

    };
    my_xml.load("test.xml"); 
    Das Gleiche als AS3 - Code
    PHP-Code:
    var verGleich:String "196";
    var 
    suche:String;
    var 
    my_xml:XML = new XML();
    var 
    XML_URL:String "test.xml";
    var 
    my_xmlURL:URLRequest = new URLRequest(XML_URL);
    var 
    myLoader:URLLoader = new URLLoader(my_xmlURL);
    myLoader.addEventListener("complete"xmlLoaded);

    function 
    xmlLoaded(event:Event):void {
        
    my_xml XML(myLoader.data);
        for (var 
    0i<=my_xml.length(); i++) {
            
    suche my_xml.children()[i].localName();
            (
    suche == verGleich) ? trace("mache was "+suche+" : "+verGleich) : trace("mache nichts "+suche+" : "+verGleich);
        }

    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  3. #3
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591
    Danke für deine Antwort und deine Hilfe.

    Übrigens wird das ganze in AS2 umgesetzt , entschuldigt das falsche Topic.

    Mit deinem Code-Schnippsel erhalte ich nun die Abfrage ob es in der XML steht, aber wie genau kann ich denn dann darauf zugreifen?

    Im Endeffekt vergleicht er ja alle Werte uns sagt "stimmt" oder "stimmt nicht".

    Gruß Chriz
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

  4. #4
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.485
    Kommt darauf an was du vor hast, so kannst du eine funktion ansprechen wenn es stimmt.
    Alternativ kannst du die XML in einem Object parsen und das Object gezielt ansprechen:

    AS3
    PHP-Code:
    var verGleich:String "196";
    var 
    suche:String;
    var 
    my_xml:XML = new XML();
    var 
    xmlObj:Object = new Object();
    var 
    XML_URL:String "test.xml";
    var 
    my_xmlURL:URLRequest = new URLRequest(XML_URL);
    var 
    myLoader:URLLoader = new URLLoader(my_xmlURL);
    myLoader.addEventListener("complete"xmlLoaded);
    function 
    xmlLoaded(event:Event):void {
        
    my_xml XML(myLoader.data);
        for (var 
    0i<=my_xml.length(); i++) {
            
    suche my_xml.children()[i].localName();
            
    xmlObj[my_xml.children()[i].localName()] = my_xml.children()[i];
        }
        
    trace(xmlObj[verGleich].children()[0]);

    und als as2
    PHP-Code:
    var my_xml:XML = new XML();
    my_xml.ignoreWhite true;
    var 
    verGleich:String "195";
    var 
    xmlObj:Object = new Object();
    my_xml.onLoad = function(success:Boolean) {
        if (
    success) {

            for (var 
    0i<=my_xml.childNodes.lengthi++) {
                
    xmlObj[my_xml.firstChild.childNodes[i].localName] = new XML(my_xml.firstChild.childNodes[i].childNodes);


            }
            
    trace(xmlObj[verGleich]);

        } else {
            
    trace("fehler");
        }

    };
    my_xml.load("test.xml"); 
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  5. #5
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591
    Du hast mir den Tag gerettet, danke!

    So habe ich mir die einzelnen ChildNodes heraus gezogen:

    PHP-Code:
    var my_xml:XML = new XML();
    my_xml.ignoreWhite true;
    var 
    verGleich:String ID;
    var 
    beschreibung:Object = new Object();
    var 
    bildpfad:Object = new Object();
    var 
    langebeschreibung:Object = new Object();
    my_xml.onLoad = function(success:Boolean) {
        if (
    success) {

            for (var 
    0i<=my_xml.childNodes.lengthi++) {
                
    beschreibung[my_xml.firstChild.childNodes[i].localName] = new XML(my_xml.firstChild.childNodes[i].childNodes[0].childNodes[0]);
                
    bildpfad[my_xml.firstChild.childNodes[i].localName] = new XML(my_xml.firstChild.childNodes[i].childNodes[1].childNodes[0]);
                
    langebeschreibung[my_xml.firstChild.childNodes[i].localName] = new XML(my_xml.firstChild.childNodes[i].childNodes[2].childNodes[0]);
                
            }
            
    trace(beschreibung[verGleich]);
            
    trace(bildpfad[verGleich]);
            
    trace(langebeschreibung[verGleich]);


        } else {
            
    trace("fehler");
        }

    _global.pdbild bildpfad[verGleich];
    beschreibungbeschreibung[verGleich];
    _root.shape.ladeProdukt();
    _root.ladeBeschreibung();
        
        
    }; 
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

  6. #6
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591
    Leider hänge ich schon wieder an einem Problem, genau mit dem gleichen Thema.

    Nun möchte ich aus dem bestimmten Wert einer XML eine Dropdown Liste erstellen. Per Hand funktioniert das alles wunderbar, aber ich komme einfach nicht dahinter wie ich dier XML durchlaufen lassen kann und dann aber genau bei der Liste stoppe.

    So sieht die XML aus:

    HTML-Code:
    <doc>
    <195>
    <smallname>Überschrift</smallname> 
    <fullname>Ich bin ein Text</fullname>
    <bildpfade>
    <bildpfad variname="Rot" pfad="../images/product_images/popup_images/196_0.png" />
    <bildpfad variname="Blau" pfad="../images/product_images/popup_images/197_0.png" />
    <bildpfad variname="Lila" pfad="../images/product_images/popup_images/198_0.png" />
    </bildpfade>
    </195>
    </doc>
    
    
    <196>
     [...]
    </196>

    Die Dropdownliste fülle ich folgendermaßen mit festen Werten:

    PHP-Code:
    for (var i=0i<my_xml.firstChild.childNodes[0].childNodes[2].childNodes.lengthi++) { 

    var 
    nochnevariable my_xml.firstChild.childNodes[0].childNodes[2].childNodes[i].attributes.variname;

    zielpic [i]= my_xml.firstChild.childNodes[0].childNodes[2].childNodes[i].attributes.pfad;
        
        
    dropdownbox_produktvariation.addItem(nochnevariablei);
        } 
    Irgendwie verstehe ich nicht, warum es keinen einfachen Befehl gibt um in der XML zu einem bestimmten Wert zu springen.

    Vielleicht kann ja nochmal jemand helfen, sitze mal wieder seit 11 Uhr daran.

    Gruß, Chriz
    Geändert von Wanderratte (03.06.2009 um 18:37 Uhr)
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

  7. #7
    TP-Insider Corsachriz bringt sich richtig ein Corsachriz bringt sich richtig ein Avatar von Corsachriz
    Registriert seit
    Apr 2006
    Ort
    nähe Köln
    Beiträge
    591
    Manchmal muss man einfach mal eine Pause machen:

    PHP-Code:
    derrichtigweg[my_xml.firstChild.childNodes[i].localName] = new XML(my_xml.firstChild.childNodes[i].childNodes[2]); 
    und dann das Dropdown:

    HTML-Code:
    for (var i=0; i<derrichtigeweg[verGleich].firstChild.childNodes.length; i++) {
    
    var nochnevariable = derrichtigeweg[verGleich].firstChild.childNodes[i].attributes.variname;
    
    zielpic [i]= derrichtigeweg[verGleich].firstChild.childNodes[i].attributes.pfad;
    	
    	dropdownbox_produktvariation.addItem(nochnevariable, i);
    
    	}
    Vielleicht hilft es ja jemandem
    I like "selbstgemacht"!
    3 Backlinks aus deinem Artikel
    Fotos Online Preisvergleich
    Ich tausche Links - auch mit schwachen oder neuen Seiten. Schreib mir einfach

+ Antworten

Ähnliche Themen

  1. [PHP/MySQL] bestimmte Zeile lesen?
    Von bestdani im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 15.10.2006, 23:22
  2. Daten-DVD lesen
    Von fiu im Forum Betriebssysteme
    Antworten: 6
    Letzter Beitrag: 30.01.2005, 21:57
  3. Schreiben und lesen
    Von manuelito im Forum Traum-Dynamik
    Antworten: 16
    Letzter Beitrag: 05.01.2003, 15:54
  4. PC-Daten am Mac zu lesen?
    Von Kafkaesk im Forum Betriebssysteme
    Antworten: 7
    Letzter Beitrag: 30.12.2002, 15:12

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51