Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-05-2004, 20:55   #1 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
Lightbulb xml rekursiv durchlaufen und parsen

warum war ich eigentlich immer(seit nem 3/4 Jahr) zu blöde eine xml Struktur rekursiv zu durchwandern?

Na klar weil ich nie richtig nachgedacht habe und nun ging es nicht anders und ich mußte und ich entdecke die einfachkeit des rekursiven seins!

zuerst einmal zwei prototypes:
ActionScript:
  1. XMLNode.prototype.buildTreeObjectFromXmlStructure = function(pObj) {
  2.     //
  3.     this.parseAttributes2Object(pObj);
  4.     if (this.hasChildNodes()) {
  5.         for (var i = 0; i<this.childNodes.length; i++) {
  6.             //
  7.             pObj["sub_"+i] = new Object();
  8.             pObj["sub_"+i].id = (pObj.id!=undefined) ? pObj.id+"_"+i : i;
  9.             this.childNodes[i].parseAttributes2Object(pObj["sub_"+i]);
  10.             if (this.childNodes[i].hasChildNodes()) this.childNodes[i].buildTreeObjectFromXmlStructure(pObj["sub_"+i]);
  11.         }
  12.     }
  13.     //
  14. };
  15. XMLNode.prototype.parseAttributes2Object = function(pObj) {
  16.     //
  17.     for (var attri in this.attributes) {
  18.         if (pObj[attri] == undefined)   pObj[attri] = this.attributes[attri];
  19.     }
  20. };

so nun noch ein xml Object

ActionScript:
  1. this.xmlData = new XML();
  2. this.xmlData.ignoreWhite = true;
  3. this.xmlData.handler = this;
  4. this.xmlData.onLoad = function(pErfolg) {
  5.     if (pErfolg) {
  6.         this.handler.naviObj = new Object();
  7.         this.firstChild.buildTreeObjectFromXmlStructure(this.handler.naviObj);
  8.         delete this.handler.xmlData;
  9.     } else {
  10.         trace("Fehler!");
  11.     }
  12. };
  13. this.xmlData.load("test_01.xml");

und zu guter letzt eine XML datei

PHP-Code:

<?xml version="1.0" encoding="UTF-8"?>
<navigation>
    <item titel="home" link="./home/"/>
    <item titel="news" link="./news/"/>
    <item titel="info" link="./info/"/>
    <item titel="programming" link="./programming/">
        <item titel="as1" link="./programming/as1/"/>
        <item titel="as2" link="./programming/as2/"/>
        <item titel="php" link="./programming/php/"/>
        <item titel="oop" link="./programming/oop/">
            <item titel="as1" link="./programming/oop/as1/"/>
            <item titel="as2" link="./programming/oop/as2/"/>
            <item titel="php" link="./programming/oop/php/"/>
        </item>
    </item>
    <item titel="tiefe1" link="./tiefe1/">
        <item titel="tiefe10" link="./tiefe1/tiefe10/">
            <item titel="tiefe101" link="./tiefe1/tiefe101/">
                <item titel="tiefe1010" link="./tiefe1/tiefe101/tiefe1010/"/>
            </item>
        </item>
        <item titel="tiefe11" link="./tiefe1/tiefe11/"/>
        <item titel="tiefe12" link="./tiefe1/tiefe12/"/>
    </item>
</navigation>
und auf einfache art und weiße ist aus meiner herachischen xml struktur eine gleiche objectstruktur gezaubert.

ach ja manchmal ist es leichter als es scheint aber das ist für viele nichts wirklich neues aber ich bin glücklich

see ya
__________________
TVNEXT Solutions

Geändert von atothek (14-05-2004 um 20:57 Uhr)
atothek ist offline   Mit Zitat antworten
Alt 14-05-2004, 21:19   #2 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
hallo

was haste denn bitte für einen vorteil von dem Objektbaum gegenüber dem vorhandenen XML Baum ?

um an die Daten im Objektbaum zu kommen musste doch dann wieder rekursiv arbeiten und das wird dann weniger komfortabel als bei dem XML Baum und zur Datenhaltung is das XML auch besser geeignet weil das die Ein und Ausgabe gleich geklärt ist

also wo ist der Vorteil ?

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer
tolleiv ist offline   Mit Zitat antworten
Alt 14-05-2004, 21:43   #3 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
haste recht ist ein schlechtes beispiel um zu verdeutlichen welche vorteile es mit sich bringt. letztlich geht es auch gar nicht darum einen ObjectTree zu erzeugen, sondern alleine darum den xmlTree rekursiv zu durchlaufen um zB. verschachtelte mc instanzen zu erzeugen etc. das beispiel mit dem Object ist blöd haste recht aber im eifer des gefechts hab ich mich einfach nur gefreut.
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 14-05-2004, 21:51   #4 (permalink)
flashed Dude
 
Benutzerbild von tolleiv
 
Registriert seit: Mar 2002
Ort: _level0
Beiträge: 1.402
axo alles klar gut das gefühl kenn ich

diese aha gefühl wenn man die rekursion dann auch endlich inne hat is wirklich was feines

mfg
__________________
Die Basis unseres Denkens ist das der Verstand sich selbst erkennt.
Kyle Broslovski


Eigenlob stinkt ~ fast immer
tolleiv ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele