2016-03-20 42 views
-1

XML dosyamın kodunu çözme konusunda yardıma ihtiyacım var. Bu şuna benzer:AS3 XML dosyasını çözme

<?xml version="1.0" encoding="UTF-8"?> 
<design> 
    <images> 
     <cell id="fill" file="cellImages/cellFill"/> 
     <cell id="top" file="cellImages/cellTop"/> 
     <cell id="topLeft" file="cellImages/cellTopLeft"/> 
     <cell id="topRight" file="cellImages/cellTopRight"/> 
     <cell id="bottom" file="cellImages/cellBottom"/> 
     <cell id="bottomLeft" file="cellImages/cellBottomLeft"/> 
     <cell id="bottomRight" file="cellImages/cellBottomRIght"/> 
    </images> 
</design> 

ve bu benim kodudur:

function xmlLoaded(event:Event):void 
    { 
     _structXML = XML(_structLoader.data); 
     trace("Data loaded." + _structXML); 

     var a:XML; 
     for each(a in _structXML.images.cell) 
     { 
      trace("test=" + a); 
     } 
    }  

o izleri tüm hiçbir veri XML izlenir XML ve 7 "= test" dir.

yardım edin :) boş XML düğümlerini konum (içeriksiz ama sadece nitelikleri) çünkü tüm a değerleri için boş dizeleri izleri

cevap

0

kullanımı bu:

trace("test id = " + a.attribute("id")); 
trace("test file = " + a.attribute("file")); 
0

"test=" + a kullanımınız ve rules of XML toString() başına, bir dizeye a XML nesnesini dönüştürmektedir:

  • XML nesnesi basit bir içeriğe sahipse

    , toString(), XML nesnesinin Dize içeriğiyle aşağıdaki sırasını döndürür: başlangıç ​​ etiketi, öznitelik es, ad alanı beyanları ve bitiş etiketi. XML nesnesi karmaşık içeriğe sahipse

  • , toString() başlangıç ​​ etiketi, nitelikler, ad alanı bildirimleri ve bitiş etiketi dahil tüm XML nesnesini temsil eden XML kodlu bir String döndürür. senin <cell> düğümler Çünkü

, bu XML çıkışından bitiş etiketi başlatmak ve dışarı şeritler "basit" içeriği (hiçbir çocuğun düğümleri) vardır ve <cell> düğümleri hiçbir şey içerdiğinden, boş dize olsun , trace ifadenizde görünür bir şey çıkmıyor.

toXMLString(), XML'in tam dize gösterimini (yani, düğüm içeriği "basit" veya "karmaşık" ise, yukarıda listelenen ikinci davranış) elde etmek için kullanabilirsiniz.

trace("test=", a.toXMLString()); 

Yoksa olabilir çıktı nitelikleri:

trace([email protected], "=", [email protected]); 

(Not:. trace Eğer + ile dize birleştirme kullanmak gerekmez, birden fazla argüman alabilir)