2009-06-08 10 views

Répondre

3
bien

, un nœud d'élément a la propriété attributes ... c'est tout simplement un objet anonyme en peluche avec l'info ...

juste faire someXML.attributes.someAttribute et vous obtiendrez la valeur souhaitée ...

De même, vous pouvez vérifier this little library j'ai fait pour AS2, pour apporter des pièces de e4x à l'AS2 et simplifier le traitement XML ... il n'est pas du tout niveau de production cependant!

greetz

back2dos

+0

Salut, Un grand merci! –

0

Hum, ont besoin d'un code de vôtre pour résoudre ce mystère, p Sinon, vous obtiendrez des liens ennuyeux à la documentation sdk. Mais je ne sais pas trop, c'est du code AS3 et je ne sais pas si xml a fait l'objet d'une refonte majeure de AS2-> AS3. Doit dire que c'est une très bonne expérience de travailler avec XML dans AS3 cependant.

 //current level number 
     public var mCurrentLevelNumber:Number = 0; 
     //read from file variables: 
     private var mLoader:URLLoader = new URLLoader(); 
     private var mXML:XML; 

     //add a listener 
     mLoader.addEventListener(Event.COMPLETE, OnLoadXML, false, 0, true); 
     mLoader.load(new URLRequest("../assets/content.xml")); 

.... 
     /* 
     OnLoadXML 
     Parses the data from the file, loads one level 
     @e:Event  
     */ 
     private function OnLoadXML(e:Event):void{ 
      var loadLevel:Array = new Array(); 
      try{ 
       //convert the text into an XML 
       mXML = new XML(e.target.data); 
       //trace("reading from .xml is done, values: ", mXML); 
       trace(" Name of the level: ", mXML.level[mCurrentLevelNumber].title.text()); 
       for (var j:int=0; j<mXML.level[mCurrentLevelNumber].tiles.tilerow.length(); j++) { 
         trace("Row",j,", tiles:", mXML.level[mCurrentLevelNumber].tiles.tilerow[j].text()); 
       } 
       //...... 
       //} 
      }catch (e:TypeError){ 
       trace("Could not parse the XML"); 
       trace(e.message); 
      } 
     } 


And the xml file structure; 
<!-- pretty level arrays... --> 
<levels> 
    <level> 
     <title>Level 1</title> 
     <tiles> 
      <tilerow>1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1 3 1 13</tilerow> 
      <tilerow>1 0 0 0 0 0 0 0 0 0 0 0 10 12 0 9 0 0 0 0 0 0 0 0 1</tilerow> 
      <tilerow>1 0 0 0 0 1 0 0 0 0 0 0 10 11 11 11 12 0 6 1 0 0 0 0 1</tilerow> 
      <tilerow>1 9 1 0 0 1 0 0 0 0 0 0 10 12 0 9 0 0 6 0 0 0 0 0 1</tilerow> 
     </tiles> 
    </level> 
</levels>  
+0

Merci pour votre réponse. Je posterai ci-dessous comment je reçois les valeurs des éléments xml. Ce que je ne sais pas, c'est comment obtenir les attributs de chaque élément. Par exemple: Etape 1 Je sais déjà comment obtenir « Étape 1 », mais aussi je voudrais obtenir la valeur de l'attribut id. Donc, je reçois chaque élément xml comme ceci (dans un pour): var myXml: XML = new XML(); var barres: Array = new Array(); if (monXml.childNodes [0] .childNodes [indexDeChart] .nodeName == "niveau") { bars.push [monXml.childNodes [0] .childNodes [chartIndex] .childNodes [0] .childNodes [0] .nodeValue] } Merci, Brian –

Questions connexes