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: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors