Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2006, 17:07   #1 (permalink)
Ein User
 
Registriert seit: Aug 2004
Beiträge: 10
Angry XML nach bestimmtem Attribut-Wert durchsuchen und dann den Pfad zum Wert zurückgeben

servus zusammen,

ich sitze jetzt schon seit stunden an folgendem problem:
ich habe eine xml-datei, die nach einem bestimmten attribut-wert durchsucht werden soll und dann den "pfad" zu diesem attribut-wert zurückgeben soll.

die funktion muss unter flashplayer 6 laufen. meine bisherige funktion sieht wie folgt aus:
PHP-Code:
function array_search_recursive (haystackneedlepath) {
    for (var 
0i<haystack.childNodes.lengthi++) {
        if (
haystack.childNodes[i].attributes.id == needle) {
            
trace("gefunden in "+i);
            
path.push(i);
            return 
path;
        }
        if (
haystack.childNodes[i].hasChildNodes()) {
            var 
sub array_search_recursive(haystack.childNodes[i], needlepath);
            if (
sub != false) {
                var 
path path.concat(sub);
                return 
path;
            }
        }
    }
    return 
false;
}
var 
result array_search_recursive(MyXML"Punkt 1.1.3.2", new Array());
trace ("Pfad: " result); 
die xml-datei hat diese struktur:
PHP-Code:
<navigation>
    <
titel id="HAUPTMENÜ">
        <
item id="Punkt 1">
            <
subitem1 id="Punkt 1.1">
                <
subitem2 id="Punkt 1.1.1" />
                <
subitem2 id="Punkt 1.1.2" />
                <
subitem2 id="Punkt 1.1.3">
                    <
subitem3 id="Punkt 1.1.3.1" />
                    <
subitem3 id="Punkt 1.1.3.2" />
                </
subitem2>
                <
subitem2 id="Punkt 1.1.4" />
                <
subitem2 id="Punkt 1.1.5" />
                <
subitem2 id="Punkt 1.1.6" />
            </
subitem1>
            <
subitem1 id="Punkt 1.2" />
            <
subitem1 id="Punkt 1.3">
                <
subitem2 id="Punkt 1.3.1" />
                <
subitem2 id="Punkt 1.3.2" />
                <
subitem2 id="Punkt 1.3.3" />
            </
subitem1>
            <
subitem1 id="Punkt 1.4">
                <
subitem2 id="Punkt 1.4.1" />
                <
subitem2 id="Punkt 1.4.2" />
            </
subitem1>
            <
subitem1 id="Punkt 1.5" />
        </
item>
        <
item id="Punkt 2">
            <
subitem1 id="Punkt 2.1" />
            <
subitem1 id="Punkt 2.2" />
        </
item>
    </
titel>
</
navigation
Rauskommen tut aber immer sowas:
PHP-Code:
gefunden in 1
Pfad
1,1,1,1,
und es sollte eigentlich folgendes rauskommen:
PHP-Code:
gefunden in 1
Pfad
0,0,0,2,
Mir raucht die birne und ich komme einfach nicht weiter. findet vielleicht jemand den fehler??

danke.
oliver_de ist offline   Mit Zitat antworten
Alt 06-09-2006, 20:20   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
mit dem attribut ID kannst du einen node direkt auslesen:

// nur ab flash 8
trace(MyXML.idMap["Punkt 2.1"]);
// nur für < flash8
trace(MyXML["Punkt 2.1"]);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 03:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele