2009-06-08 2 views

ответ

3

хорошо, любой узел элемента имеет свойство attributes ... это просто анонимные объекты, фаршированные информация ...

вобще someXML.attributes.someAttribute и вы получите желаемое значение ...

Аналогичным образом, вы можете проверить this little library, который я сделал для AS2, чтобы доставить части e4x в AS2 и упростить обработку XML ... однако это вовсе не уровень производства!

Greetz

back2dos

+0

Привет, Большое спасибо! –

0

Hum, нужен код твоего, чтобы решить эту загадку, р В противном случае вы получите некоторые скучные ссылки на документацию SDK. Но плохо дайте ему шанс, это код AS3, и я не знаю, имел ли xml существенную доработку от AS2-> AS3. Должен сказать, что очень хороший опыт работы с xml в AS3.

 //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

спасибо за ваш ответ. Ниже я расскажу, как я получаю значения элементов xml. Я не знаю, как получить атрибуты каждого элемента. Например: <Уровень ид = «1»> Этап 1 Я уже знаю, как получить «Stage 1», но я хотел бы получить значение атрибута ид. Итак, я получаю каждый элемент xml, подобный этому (внутри a для): var myXml: XML = new XML(); var bars: Array = new Array(); if (myXml.childNodes [0] .childNodes [chartIndex] .nodeName == "level") { bars.push [myXml.childNodes [0] .childNodes [chartIndex] .childNodes [0] .childNodes [0] .nodeValue] } Спасибо, Brian –