Loading:


Odczytywanie pliku XML w ActionScript 3 przy użyciu pętli for each

Aby wyświetlić same wartości każdego elementu naszej struktury pliku XML, który jest pokazany poniżej:

 

<wszystkie>
<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:

 

for each (var dane:XML in zawartosc.ksiazka.*) {
    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 ==========");
                }
        }
}

 



Napisz Artyku³

Listing

niema




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38423
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors