Aby wyÅ›wietlić same wartoÅ›ci każdego elementu naszej struktury pliku XML, który jest pokazany poniżej:
<ksiazka>
<tytul>Moja ksiazka</tytul>
<cena waluta="PLN">20</cena>
</ksiazka>
<ksiazka>
<tytul>Moja ksiazka numer 2</tytul>
<cena waluta="USD">99</cena>
</ksiazka>
</wszystkie>
Wystarczy użyć pÄ™tli for each po wczytaniu pliku, która jest pokazana poniżej:
trace (dane+" "+dane..@waluta);
}
Zauważmy, że nie odnosimy siÄ™ do pliku XML bezpoÅ›rednio, czyli "in zawartosc" ale przez odwoÅ‚anie siÄ™ do elementu i na jego podstawie wyÅ›wietlamy dane, jeÅ›li pÄ™tlÄ™ byÅ›my zmienili na wspomnianÄ… "in zawartosc" wtedy wyÅ›wietlona by zostaÅ‚a caÅ‚a zawartość elementu <wszystkie> razem ze znacznikami XML. Również wystÄ…piÅ‚ by błąd podczas debungowania, ponieważ nie mamy w znaczniku <wszystkie> parametru WALUTA.
Do wartoÅ›ci tagów w pÄ™tlach odnosimy sie odrazu po przez:
zawartosc.ksiazka.tytul
lub do jednego wpisu:
zawartosc.ksiazka.tytul[0]
Do paramatrów w pÄ™tlach odnosimy sie poprzez nazwe tagu w jakim sie znajdujÄ… potem ..@ znaczki oraz nazwe parametru
zawartosc.ksiazka.cena..@waluta
lub dla pojedynczego wpisu:
zawartosc.ksiazka.cena..@waluta[0]
CaÅ‚y kod ActionScript 3 do wczytywania zewnÄ™trznego pliku "plik.xml" jest podany poniżej w dwóch wersjach:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class Wczytywanie_XML extends Sprite {
private var zawartosc:XML;
private var urlLoader:URLLoader;
public function Wczytywanie_XML() {
var urlRequest:URLRequest = new URLRequest("plik.xml");
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, zaladowano);
urlLoader.load(urlRequest);
}
private function zaladowano(e:Event) {
zawartosc = new XML(urlLoader.data);
trace ("=========== Odwołanie się do 1 pozycji ==========");
trace (zawartosc.ksiazka.tytul[0]);
trace (zawartosc.ksiazka.cena[0]+" - "+zawartosc.ksiazka.cena..@waluta[0]);
trace ("=========== Owołanie się do wszystki pozycji ==========");
for each (var dane:XML in zawartosc.ksiazka.*) {
trace (dane+" "+dane..@waluta);
}
trace ("========= Funkcje.net ==========");
}
}
}
Listing
Ranga: Administrator serwisu Punktów: 38473

