2010-02-20 4 views
0

Je suis en utilisant flex builder 3. J'ai un fichier xml qui ressemble à ceci, remarquez la propriété flag. Il peut être 0 ou 1:Choisir un nœud xml aléatoire à partir de xmllist selon une condition

<question id="2"> 
    <short>OMG</short> 
    <meaning>Oh My God</meaning> 
    <hint>OMG did you hear they broke up?!</hint> 
    <flag>0</flag> 
    </question> 
    <question id="3"> 
    <short>BTW</short> 
    <meaning>By The Way</meaning> 
    <hint>BTW, there's no class today</hint> 
    **<flag>0</flag>** 
    </question> 

Je crée un XMLList contenant tous, et je voulais à chaque fois sélectionner un nœud aléatoire que si le drapeau est égale à 0. Signification Je condition, et selon qui sélectionne un nœud aléatoire qui correspond à cette condition. voici où j'essaie de s'adapter tout:

var countNodes:int = 25; 
var i:int = int(Math.random() * 25); 
var xList:XMLList = loadedXML.question[i].short; 
quesLabel.text = xList.text(); 
test2.text=loadedXML.question[i].meaning; 

des idées sur la façon dont je peux choisir un nœud aléatoire qui correspond à la condition? Merci!

Répondre

1

Essayez ceci:

var filteredNodes:XMLList = loadedXML.(flag==0); 
var countNodes:int = filteredNodes.length() 
var i:int = int(Math.random() * countNodes); 
var randomNode:XML = filteredNodes[i]; 
trace (randomNode.toXMLString()); 
Questions connexes