2009-07-22 5 views
2

Betrachten Sie dieses Szenario auf Basis auswählen:Javascript E4X: ein Knoten auf einem Attributwert

Mit Javascript/E4X, in einem Nicht-Browser-Nutzung Szenario (a Javascript HL7-Integration-Engine), gibt es eine Variable, die einen XML-Schnipsel hält das könnte mehrere sich wiederholende Knoten haben.

<pets>  
<pet type="dog">Barney</pet> 
<pet type="cat">Socks</pet> 
</pets> 

Code:

var petsXml; // pretend it holds the above xml value 
//var cat = petsXml['pet']..... ? 

Frage: mit E4X, wie können Sie das richtige Haustier Knoten mit dem Attribut type hält den Wert der Zeichenfolge 'Katze' wählen?

Update:

Einige Learnings mit E4X:

  • einen einzelnen/ersten Knoten durch einen Attributwert wählen: var dog = petsXml.(@type == "dog");
  • einen Wert von einem Knoten spezifischen Attribute zu erhalten: var petType = [email protected];

Antwort

2
var petsXml; 
var catList = petsXml.*.(@type == "cat"); 

Siehe "Filter" here oder "parametrisiert suchen" über here.

+0

danke Pianoman. Das hat gut funktioniert. Obwohl ich die Lösung erfolgreich als petsXml implementiert habe (@ type == "cat"); Gibt das Sternchen an, dass Multiples zurückgegeben würden, während ohne wäre das erste gefunden? –

+0

Sie haben absolut Recht. Das '*' sollte alle '' Knoten durchsuchen, und 'catList' könnte sehr gut ein Array sein, wenn> 1 Katzen vorhanden sind. –

Verwandte Themen