Deus Figendi: Alle Klassen und IDs eines Dokuments sammeln

Beitrag lesen

Guten Morgen,
ich möchte gerade eine Liste aller in einem XML-Dokument vorhandenen Klassen und IDs haben. Außerdem will ich das inline-styling dieser sammeln.
Naja ist nicht ganz richtig, es geht um SVG und es geht eigentlich nur um bestimmte Element-Typen, nämlich alle Formen und <g>.
Mein Problem ist im Grunde, dass JS keine assoziativen Arrays kennt bzw. (soweit ich weiß) nur in Form von Objekten btw. Eigenschaften.
Denn mein Ansatz sah jetzt erstmal so aus:

  
  
 var all_classes = new Array();  
 var all_ids     = new Array();  
 var all_elements = document.getElementsByTagName("*");  
  
 for (var i=0; i < all_elements.length; i++) {  
  var nn = all_elements[i].nodeName.toUpperCase();  
  if (nn=='G'||nn=='RECT'||nn=='PATH'||nn=='LINE'||nn=='CIRCLE'||nn=='ELLIPSE'||nn=='POLYLINE'||nn=='POLYGON') {  
  
   if (all_elements[i].className) {  
    if (all_elements[i].className.baseVal) {  
     if (all_elements[i].className.baseVal.length > 0) {  
      if (all_elements[i].style) {  
       if (all_elements[i].style.length > 0) {  
        all_classes[all_elements[i].className.baseVal] = all_elements[i].style;  
       } else {  
        all_classes[all_elements[i].className.baseVal] = True;  
       }  
      } else {  
       all_classes[all_elements[i].className.baseVal] = True;  
      }  
     }  
    }  
   }  
  
  
  }  
 }  

oder so (ist jetzt natürlich verkürzt). Man kann auch ein richtiges Objekt dahinter hängen like
all_classes[all_elements[i].className.baseVal] = new Object();
und dann die Style-Angaben als Eigenschaft speichern.

Wie auch immer, das Problem ist, dass all_classes.length immer 0 ergibt, was mich nicht überrascht, ich hab das eh nur geschrieben um zu zeigen was ich will ^^ (komischerweise wirft das allerdings keinen Fehler...)

Also: Ziel der ganzen Geschichte ist alle Klassen und IDs eines SVG-Dokuments zusammen zu tragen, so dass ich sie hinterher auch gut wiederfinde.
Denn anschließend wollte ich die Inline-Styles vielleicht auslagern in ein Style-Element (mal gucken) auf jeden Fall aber möchte ich später auf eine Form (wie shape) klicken und das passende Array-Element gleich finden.

An _ganz_ anderen Lösungen bin ich natürlich auch interessiert.

--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(