2010-02-17 8 views
2

Je travaille dans Flex Builder 3 avec un XMLListCollection et se sont heurtées à ce (doit être simple) accroc ... l'analyse syntaxiqueFlex XMLListCollection Iteration concaténer recueillies

Les données XMLListCollection:

<data> 
    <term name="NUMBERS"> 
     <alt_form name="1"/> 
    </term> 
    <term name="LETTERS"> 
     <alt_form name="A"/> 
     <alt_form name="B"/> 
     <alt_form name="C"/> 
    </term> 
</data> 

Le AS Fonction:

private function interateThroughXML(myList:XMLListCollection):void { 
    for each (var node : XML in myList){ 
     trace([email protected] + " is my list item name"); 
     if ([email protected] != null) { 
      trace([email protected] + " is my list SUB item name"); 
     } 
    } 
} 

La sortie:

NUMÉROS ma liste nom de l'article
1 est ma liste Nom SUB article
LETTRES ma liste nom de l'article
ABC est ma liste Nom SUB article

de noter que les trois valeurs de nom de sous-nœud ont été concaténé comme "ABC". Que dois-je faire différemment pour saisir les valeurs du nom de sous-élément (A, B et C) individuellement?

Répondre

3

Vous devez également parcourir les sous-noeuds. L'appel node.alt_form renvoie un XMLList, alors itérer que:

private function iterateThroughXML(myList:XMLListCollection):void { 
    for each (var node : XML in myList){ 
     trace([email protected] + " is my list item name"); 
     for each (var subnode : XML in node.alt_form) { 
      if ([email protected] != null) { 
       trace([email protected] + " is my list SUB item name"); 
      } 
     } 
    } 
} 
+0

Pourquoi cela ne se produit à moi, je ne sais pas ... Votre exemple branché et joué comme un charme. Merci beaucoup Matt! – taipan