Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414

    parsing in as3 - xml badformat?

    salve sto sperimentando il parsing in as3,funziona tutto perfettamente, solo che la mia pagina xml è formattata in qst modo
    Codice PHP:
    <nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo>
    <
    nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo>
    <
    nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo
    invece che
    Codice PHP:
    <nodi>
    <
    nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo>
    <
    nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo>
    <
    nodo id="" titolo="" anno="" cliente="" agenzia=""   tecnica=""   thumb=""   thumb_low=""   pict=""   pict_high="" thumb_anim=""   anim="">
    </
    nodo>
    </
    nodi
    come posso modificare qst codice in modo che mi funzioni con un xml formattato come il primo esempio?

    Codice PHP:
    var external_file:String "projects_listmaker_3d.xml";
    var 
    requ:URLRequest = new URLRequest(external_file);
    var 
    variabili:URLLoader = new URLLoader(requ);
    variabili.addEventListener(Event.COMPLETEcompleteHandler);
    variabili.addEventListener(IOErrorEvent.IO_ERRORerrorHandler);

    function 
    completeHandler(e:Event) {
        var 
    figli:XMLList = new XML(variabili.data).nodo;
        for(var 
    i:int 0figli.length(); i++){
            
    trace(figli[i].attribute('id'));
            
    trace(figli[i].attribute('titolo'));
            
    trace(figli[i].attribute('anno'));
            
    trace(figli[i].attribute('tecnica'));
            
    trace(figli[i].attribute('cliente'));
            
    trace(figli[i].attribute('agenzia'));
            
    trace(figli[i].attribute('thumb'));
            
    trace(figli[i].attribute('thumb_low'));
            
    trace(figli[i].attribute('pict'));
            
    trace(figli[i].attribute('pict_high'));
            
    trace(figli[i].attribute('thumb_anim'));
            
    trace(figli[i].attribute('anim')); 
            
    trace('________________________');
        }
    }

    function 
    errorHandler(event:IOErrorEvent) {
        
    trace("errore");

    grazie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    In AS3 per gestire i documenti xml mal formati non è possibile usare la classe XML, che si rifà alle direttive E4X per la corretta scrittura e interpretazione dei documenti xml.
    E' comunque possibile utilizzare documenti mal formati utilizzando la classe XMLDocument, che altro non è che la trasposizione in AS3 della vecchia classe XML, che accettava anche i documenti mal formati.
    La classe contiene le stesse proprietà di quella vecchia in AS2, perciò in generale, se sai fare il parsing in AS2, lo fai tranquillamente anche in AS3 con lo stesso criterio, ma in questo caso non sfrutti le possibilità dell'E4X e il codice si complica un tantino, così come faceva in AS2.
    Il tuo esempio con un xml mal formato diventa:
    Codice PHP:
    var l:URLLoader = new URLLoader(new URLRequest("test.xml"));
    l.addEventListener(Event.COMPLETEcomplete);
    l.addEventListener(IOErrorEvent.IO_ERRORio_error);
    function 
    complete (e:Event) {
        try {
            var 
    xml:XMLDocument = new XMLDocument();
            
    xml.ignoreWhite true;
            
    xml.parseXML(e.target.data);
            var 
    figli:Array = xml.childNodes;
            for(var 
    i:uint 0figli.lengthi++){
                
    trace(figli[i].attributes.id);
                
    trace(figli[i].attributes.titolo);
                
    trace(figli[i].attributes.anno);
                
    trace(figli[i].attributes.tecnica);
                
    trace(figli[i].attributes.cliente);
                
    trace(figli[i].attributes.agenzia);
                
    trace(figli[i].attributes.thumb);
                
    trace(figli[i].attributes.thumb_low);
                
    trace(figli[i].attributes.pict);
                
    trace(figli[i].attributes.pict_high);
                
    trace(figli[i].attributes.thumb_anim);
                
    trace(figli[i].attributes.anim);
                
    trace('________________________'); 
            } 
        } catch (
    e:Error) {
        }
    }
    function 
    io_error (e:IOErrorEvent) {
        
    trace("XML non caricato!");


  3. #3
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    perfetto grazie ancora


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.