Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [AS3] Leggere valori da XML

    Ciao a tutti.

    leggendo in giro ho trovato alcune informazioni sull'argomento ma mi sto incartando nel nulla!!

    Mettiamo di aver questo file images.xml
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <gallery gal_width="800" gal_height="250" y="30" image_width="250" vertical_spacing="10" bar_thickness="10">
    	<image url="bicchiere01.jpg" />
    	<image url="bicchiere02.jpg" />
    	<image url="bicchiere03.jpg" />
    	<image url="bicchiere04.jpg" />
    	<image url="bicchiere05.jpg" />
    	<image url="bicchiere06.jpg" />
    </gallery>
    nel mio file fla ho inserito del codice come questo:
    codice:
    import flash.net.*;
    
    var myXML:XML;
    var galleryW:String;
    
    var url:URLRequest = new URLRequest("images.xml");
    var loader:URLLoader = new URLLoader(url);
    loader.addEventListener(Event.COMPLETE, onLoadComplete);
    
    function onLoadComplete(event:Event):void {
    	myXML = XML(loader.data);
    	myXML.ignoreWhitespace = true;
    	galleryW = myXML.firstChild.attributes.gal_width;
    	trace (galleryW.toString());
    }
    ebbene... mi restituisce ZERO.

    Visto che ci siamo, e visto che tanto sennò finisco per chiedervelo tra un paio di giorni... come accedo invece agli attributi di un nodo qualunque, ad esempio ai vari 'url' del tag <image />?

    Spero che la domanda sia abbastanza facile per uno pratico!

    Grazie mille.
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    L'oggetto XML di AS3 segue le direttive E4X per gli xml ben formati, consentendo perciò all'oggetto stesso di accedere più facilmente ai nodi dell'xml sotto forma di proprietà dell'oggetto.
    Di conseguenza praticamente tutte le proprietà che c'erano prima in tale oggetto (firstChild ecc..) ora non esistono più.
    In ogni caso per compatibilità con le vecchie versioni, è stata mantenuta la vecchia classe, con nome XMLDocument, che volenod puoi utilizzare come sei abituato.

    Se però preferisci usare l'oggetto XML, puoi trovare gli attributi usando la @ prima dell'attributo a cui vuoi accedere.

    Codice PHP:
    trace (myXML.@gal_width);
    trace (myXML.@gal_height);
    trace (myXML.@y);
    trace (myXML.@image_width);
    trace (myXML.@vertical_spacing);
    trace (myXML.@bar_thickness); 
    Mentre per accedere agli attributi url secondari puoi fare in due modi:
    1. usando il nome del nodo con l'indice e il nome dell'attributo, di nuovo con la @
    2. accedendo direttamente ai nodi secondari mettendo un doppio punto dopo il nome dell'oggetto e nuovamente mettendo il nome dell'attributo con l'indice di riferimento

    Ad esempio volendo leggere l'url dal primo nodo possiamo fare in questi due modi:
    Codice PHP:
    trace (myXML.image[0].@url);
    trace (myXML..@url[0]); 
    Poi vabbè ci sono anche dei metodi che restituiscono la lista di attributi (sotto forma di XMLList) o di figli della radice ecc, però direi che per xml così semplici non c'è bisogno di ricorrervi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.