Örnek
XML:
Kod:
<?XML version="1.0" encoding="iso-8859-9"?>
<images>
<image adres="1.jpg"></image>
</images>
Örnek ActionScript:
Kod:
System.useCodepage = true;
_root.resimler_xml = new XML();
_root.resimler_xml.ignoreWhite = true;
_root.resimler_xml.load("resimler.XML");
_root.createEmptyMovieClip("container", _root.getNextHighestDepth());
_root.onEnterFrame = function(){
if(_root.resimler_xml.getBytesLoaded() == _root.resimler_xml.getBytesTotal()){
this.onEnterFrame = null;
adres = _root.resimler_xml.childNodes[0].childNodes[0].attributes.adres;
_root.container.loadMovie(adres);
}
}
flash ile
XML'den
veri alırken bilinmesi gereken en önemli şeyler attakiler...
node: XML'in ağaç yapısı içerisinde her bir düğüme node denir.
nodeName: Düğümün ismini verir.
childNodes: Bir düğümün içindeki alt düğümlere ulaşmak için kullanılır. Mesela...
<belge>
<insan id=1></insan>
<insan id=2></insan>
<insan id=3></insan>
</belge>
Yukarıdaki
XML belgemizi ornek_xml şeklinde yüklemişsek...
trace(ornek_xml.childNodes);
...dediğimizde kök düğümü, yani belgenin tamamını trace eder. Çünkü "belge" düğümü belgenin içindeki ilk ve tek düğümdür. Bu ilk düğüme kök düğüm denir. Eğer...
trace(ornek_xml.childNodes[0].childNodes);
dersek. Trace edeceği şey...
<insan id="1"></insan>
<insan id="2"></insan>
<insan id="3"></insan>
...şeklinde olur. Bunlar kök düğümün alt düğümleridir. Alt düğümlerin de alt düğümleri olabilirdi ve olsaydı onlar da trace edilirdi ama bizim belgemizde yok. Bu alt düğümlerden istediğimiz sıradakine alttaki şekilde ulaşabiliriz...
trace(ornek_xml.childNodes[0].childNodes[0]);
Bu ifadeyle ilk düğümün yani kök düğümün alt düğümlerinin ilkini çağırdık. Sonuç...
<insan id=1></insan>
...şeklinde olacak.
firstChild, lastChild: Alt düğümlerin ilkine veya sonuncusuna ulaşma için bu komutları kullanabiliriz.
trace(ornek_xml.childNodes[0]);
ile
trace(ornek_xml.firstChild);
arasında bir fark yoktur.
parentNode: Üst düğüme ulaşmak için de bu ifadeyi kullanırız.
trace(ornek_xml.childNodes[0].firstChild.parentNode.nodeName);
Dediğimizde sonuç "belge" olur.
nextSibling, previousSibling : Aynı seviyedeki bir sonraki ve bir önceki düğümlere ulaşmak için kullanılır.
trace(ornek_xml.childNodes[0].childNodes[0].nextSibling);
Sonuç:
<insan id=2></insan>
olur.
length: Alt düğümlerin sayısını verir.
Örnek
XML belgemiz için...
trace(ornek_xml.childNodes[0].childNodes.length);
...dersek. Sonuç "3" olacak.
attribute: XML belgesinde bir düğümün
tag içerisinde öznitelikleri olabilir. Örneğin bizim
XML belgemizde "insan" düğümlerinin "id" öznitelikleri var. Birden fazla da olabilir. Bu özniteliklere ulaşmak için bu özniteliklerin ismini bilmemiz gerekir.
trace(ornek_xml.childNodes[0].childNodes[0].attributes.id);
Sonuç "1" olur.
hasChildNodes() : Bir düğümün alt düğümlerinin olup olmadığını öğrenmek için kullanılır.
trace(ornek_xml.childNodes[0].hasChildNodes());
Sonuç "true" olacaktır.
Daha da detaya inilebilir ama temel komutlar bunlar. Altta
flash-
XML kombinasyonunun kullanıldığı çok güzel bir belge var. İncelemenizi öneririm.