wtorek, 8 listopada 2011

tworzenie XML'a z kodu

XML'a zna pewnie każdy, albo każdy się z nim spotkał. Czasem przesiaduje w barach i pije do rana. We flashu i AS3 to często kluczowy sposób na importowanie zestawów informacji/danych. Ale co zrobić kiedy chcemy stworzyć XML'a z informacji zawartych w kodzie?

Pierwsze pytanie to, po co?. Wyobraźcie sobie sytuację kiedy robimy aplikację, mamy dużo elementów do dostosowania i chcemy ich układ zapisać. To trochę jak CMS. Więc, mamy mase informacji, które chcielibyśmy zachować... i co robimy? Zazwyczaj używamy trace() i zapisujemy/kopiujemy/zapamiętujemy... można i tak. Ale lepiej jest poprostu zrobić XML'a, zapisać go automatycznie(o tym niedługo), albo wytrace'ować i wkleić później w kod, albo do pliku.

A tak można to zrobić:

 var testObjectsArray:Array = new Array(  
                              {param_1:001, param_2:329,   param_3:123,   name:"Name_1",   other:"other_1"},  
                              {param_1:002, param_2:6786,   param_3:432,   name:"Name_2",   other:"other_2"},  
                              {param_1:003, param_2:756,   param_3:5653,   name:"Name_3",   other:"other_3"}  
                              );  
 var xml:XML = <myXml></myXml>;  
 function addToXML():void  
 {  
    for(var object:Object in testObjectsArray)  
    {  
       //trace("object: "+object);  
       var obj:Object = testObjectsArray[object];  
       var item:XML = <item />  
       for(var id:String in obj)   
       {  
          //trace("id: "+id);  
          var value:Object = obj[id];  
         item.@[id] = value  
       }  
       xml.appendChild(item);  
    }  
    trace(xml);  
 }  
 addToXML();  

W tym przypadku mam tablicę obiektów, które mają różne właściwości. Tworzymy obiekt XML, a następnie odpalamy funkcję, która tworzy nody w głównym XMLu. Każdy child w nodzie dostaje nazwę właściwości z obiektu i jego wartośc. A na końcu wyrzucamy go w trace(). I mamy zrobionego prostego XMLa, którego możemy sobie zapisać... co dalej? O tym niedługo.

Brak komentarzy:

Prześlij komentarz