2009-04-29 2 views
1

Ich habe eine XMLList, ich versuche, einen aus der Liste mit einem Stein Attribut zu greifen == Opal, aber es funktioniert nicht, verstehe ich nicht warum? HierE4X: Ausdruck gibt nicht zurück, was ich erwartet habe

ist der 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. 

Kann jemand sehen, warum dies nicht wie erwartet funktioniert?

Danke.

Antwort

2

Ich habe diese Frage geschrieben, bevor ich es herausgefunden habe ... Ich muss zuXMLString() hinzufügen, wenn ich es verfolgen.

trace(list.toXMLString()); 
+0

Ja, das ist ein komisches Flex-Debugger-Problem. Wenn ein e4x-Ausdruck nur einen einzelnen Knoten zurückgibt, ist er dort, aber die Spur ist immer leer. – radekg

+0

Ich fand, wenn es keine "Inhalt" zu der XML gibt nur das Tag und einige Attribute, dann es nicht heraus, was wir erwarten. Ich fand das heraus, als ich, wie du, erwartete, das Xml zu sehen, aber leer wurde, aber list. (@ Stone == 'Opal'). Length() gab immer noch die korrekte Menge zurück. – WORMSS