2009-02-26 8 views
1

ok voici mon code:E4X appel conditionnel ne retourne rien avec seulement 1 match?

var xml:XML = 
<xml> 
    <typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/> 
    <typeA amount1="500" amount2="300" amount3="250" date="2008-02-16"/> 
    <typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/> 
    <typeB amount1="500" amount2="300" amount3="250" date="2008-02-18"/> 
    <typeB amount1="500" amount2="300" amount3="250" date="2008-02-19"/> 
    <typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/> 
    <typeC amount1="500" amount2="300" amount3="250" date="2008-02-21"/> 
    <typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/> 
</xml>; 


trace(xml.typeA.(@date == "2008-02-16")); // no results 
trace(xml.typeA.(@date == "2008-02-17")); // finds both 
trace(xml.typeC.(@date == "2008-02-20")); // finds both 
trace(xml.typeC.(@date == "2008-02-21")); // no results 

Il semble que c'est-il trouver que s'il y a plus de 1 occurance.

Est-ce que je fais quelque chose de mal?

Répondre

6

En fait, il le trouve, mais parce que c'est seulement un élément, il le trace comme un XML (au lieu de XMList). Le noeud étant vide, il trace simplement une chaîne vide.

Essayez ceci:

<typeA amount1="500" amount2="300" amount3="250" date="2008-02-16">Hello</typeA> 

Lorsque vous déboguez XML vous feriez mieux d'utiliser la méthode toXMLString.

trace(xml.*.(@date="1980-04-29").toXMLString()); 
Questions connexes