title image


Smiley Re: DOM OBjekt Pointer
hallo redbat,



ich schlage folgende Wege vor:



- zimmere dir eine Variable, die immer den letzten, die den für dich notwendige letzte Knoten enthält.



- dein vorgehen ist ein typischer Fall für eine Rekursion, welche solange es was zu tun gibt soweit in die Äste raus und runter arbeitet, wie es eben Äste und Blätter hat. Vor der Verarbeitung muss dann meist der vorgefundene Knotentyp abgefragt werden (Knotentest).

Ich habe einen solchen Anwendungsfall (400-seitiges Schlagwortregister mit beliebig tiefer Verschachtelung der Informationen [wobei am Ende immer ein Text mit einem der 3 Verweistypen folgt]) so programmiert, das die "for each child::node()"-Funktion immer den aktuellen Knoten als Parameter übergeben bekommt. Wenn es sich um einen Textkonten handelt, dann bricht die Rekursion in diesem Zweig ab. Das Resultat-Dokument baue ich in einer globalen Variablen auf (javascript).





function tree_construct(from_this_node){

var verarbeiteter_Knoten = from_this_node;



for(var i = 0; i < verarbeiteter_Knoten.childNodes.length; i++){



if(verarbeiteter_Knoten.childNodes.item(i).nodeType == 1){



// fuer alle Schlagworte:

if(verarbeiteter_Knoten.childNodes.item(i).nodeName == "schlagwort"){

// ... }

...

// dasselbe fuer alle Unterelemente (Neuaufruf von function tree_construct()):

// fuer alle rubriken (sie enthalten neue rubriken mit begriffen und immer etwa verweisen):

else if(verarbeiteter_Knoten.childNodes.item(i).nodeName == "rubrik"){

content_tree = content_tree + "";

var weiter_mit_diesem_Knoten = verarbeiteter_Knoten.childNodes.item(i);

tree_construct(weiter_mit_diesem_Knoten);

content_tree = content_tree + "";

...

}

...



dani

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: