svg4you: XPath o.ä. für JavaScript

Beitrag lesen

Tach Sven,

Eine mögliche Aufgabe wäre z.B.: Gib mir (die Inhalte) aller "xyz"-Knoten deren Attribut "x" den Wert "y" hat oder so ähnlich.
Meine Frage ist nun, ob hierfür jemand ein paar komfortablere Methoden oder evtl. auch eine KLEINE JS-Library kennt (jeweils Cross-Browser), die mir solche Anfragen etwas vereinfacht.

XPath würde ich hier vermeiden und eher mit DOM-Methoden arbeiten:

  
function extractData(el_name, attr_name, attr_wert)  
{  
  var el_knoten=document.getElementsByTagName(el_name);  
  var anzahl=el_knoten.length;  
  var el_inhalt=[], akt_knoten;  
  
  for(var i=0; i<anzahl; i++)  
  {  
    akt_knoten=el_knoten.item(i);  
    if(akt_knoten.nodeType==1 && akt_knoten.getAttribute(attr_name)==attr_wert)  
    el_inhalt.push(akt_knoten.firstChild.nodeValue);  
    // if(...) evtl. kombiniert mit akt_knoten.hasAttribute(attr_name) - kennt IE nicht  
  }  
  
  return el_inhalt.join("\n");  
}  
  
// Aufruf bezogen auf Dein Beispiel:  
alert(extractData("xyz", "x", "y"));

el_name kann auch "*" sein, dann werden alle Elemente berücksichtigt.

Man liest sich,
svg4you