2009-04-29 9 views
1

J'ai une XMLList, j'essaye d'en attraper un de la liste avec un attribut de pierre == Opal mais ça ne marche pas, je ne comprends pas pourquoi?E4X: Expression ne pas retourner ce que je m'attendais

Voici le code:

var xml:XML = <bs><variation price="999999999.99" month="OCT" stone="Magic Pet Rock" image="https://www.sussexjewelers.com/birthstone_images/20_PE105-BT.png" style="PE105" gold_color="White" gold_carat="14"/> 
<variation price="999999999.99" month="OCT" stone="Opal" image="https://www.sussexjewelers.com/birthstone_images/17_PE105-OP.png" style="PE105-OP" gold_color="Yellow" gold_carat="14"/> 
<variation price="33212221.00" month="OCT" stone="Pink Tourmaline" image="https://www.sussexjewelers.com/birthstone_images/16_PE105-PT.png" style="PE105-PT" gold_color="Yellow" gold_carat="14"/></bs>; 


var list:XMLList = xml.children(); 

trace(list) // returns all three variations 

list = list.(@stone == 'Opal'); 

trace(list); // expecting to return the 2nd variation but actually returns nothing. 

Quelqu'un peut-il voir pourquoi cela ne fonctionne pas comme prévu?

Merci.

Répondre

2

J'ai posé cette question juste avant de la comprendre ... J'ai besoin d'ajouter toXMLString() quand je la trace.

trace(list.toXMLString()); 
+0

Oui, c'est un problème bizarre de débogueur Flex. Si une expression e4x renvoie juste un seul noeud, elle est présente mais la trace est toujours vide. – radekg

+0

J'ai trouvé s'il n'y a pas de "contenu" pour le xml seulement le tag et certains attributs, alors il ne trace pas ce que nous attendons. Je l'ai trouvé quand j'étais, comme vous, en train de m'attendre à voir le xml mais que je me suis retrouvé vide (@ stone == 'Opal'). Length() a quand même retourné la bonne quantité. – WORMSS

Questions connexes