Steffen M.: DOM Element by atttribute value

Hallo,

ich habe eine XML Datei. Ich moechte via DOM auf ein Element mit einem bestimmten Attribute Wert zugreifen. Die XMLDatei sieht vereinfacht so aus:

<root>
   <list id="haupt-liste">
      <item value="xyx" label="X Y X Label"/>
      <item value="yyx" label="Y Y X Label"/>
   </list>
</root>

Mein Versuch war wie folgt:

function something() {
  var ListKnoten = document.getElementById('haupt-liste');
  var ItemKnoten = ListKnoten.childNodes[this.value == 'yyx'];
  alert(ItemKnoten.getAttribute('label'));
}

Kann mir jemand weiterhelfen, wie ich den Knoten mittels dem attribute wert adressieren kann?

Gruss, Steffen

  1. Hallo!

    var ItemKnoten = ListKnoten.childNodes[this.value == 'yyx'];

    Netter Versuch, aber das DOM an sich kennt keine solchen Selections. Wenn Du nicht gerade ein JS-Toolkit verwendest, das diese Fähigkeiten nachliefert, wirst Du auf manuelles Parsing angewiesen sein, um mit allen Browsern kompatibel zu bleiben:

    for (var n=0; n < ListKnoten.childNodes.length; n++) {  
        if (ListKnoten.childNodes[n].value == 'yyx') {  
            var ItemKnoten = ListKnoten.childNodes[n];  
        }  
    }
    

    Gruß, LX

    --
    RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
    1. Hi,

      var ItemKnoten = ListKnoten.childNodes[this.value == 'yyx'];

      Netter Versuch, aber das DOM an sich kennt keine solchen Selections.

      Wenn ich mich nicht irre, müsste im vorherigen Schritt schon das getElementById scheitern, weil id in XML per se erst mal ein Attribut wie jedes andere ist.
      Da müsste schon als xml:id verwendet werden, damit das identifizierende Funktion bekommt.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. Nicht alles, was invalide ist, wird auch von den Browsern unterlassen ;-)

        Aber Du hast schon Recht, ein vernünftiger XMLDOM-Parser kann das besser.

        Gruß, LX

        --
        RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
    2. Besten Dank!!

      das funktioniert mit einer kleinen Abwandlung.

      Vielen Dank.