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

    Popolare array da file xml

    Ciao a tutti!
    All'interno di un filmato flash carico un file XML, e fin qui tutto bene.
    Il file XML ha una struttura del genere:

    codice:
    <voce nome = "pippo" area = "1">
    
    </voce>
    <voce nome = "andrea" area = "1">
    
    </voce>
    <voce nome = "topolino" area = "2">
    
    </voce>
    <voce nome = "antonio" area = "2">
    
    </voce>
    <voce nome = "minni" area = "3">
    
    </voce>
    <voce nome = "gino" area = "3">
    
    </voce>
    ho creato tre array, ognuno di questi dovra contenere il valore dell'attributo nome (che sta nel tag voce), in base al valore dell'attributo area.
    L'assegnazione la faccio attraverso un cicloo for, per il primo array tutto bene, infatti facendo un trace mi da questo contenuto: "pippo, andrea".
    Quando faccio il trace degli altri due array ottengo questo:

    Per il secondo array:
    undefined, undefined, topolino, antonio

    Per il terzo array:
    undefined, undefined, undefined, undefined, minni, gino

    Il for cicla da zero al numero di tag voce che ci sono nel file xml.
    Mi chiedo:
    - Come faccio a eliminare l'elemento "undefined" dall'array? anchge perchè ho necessita di avere un array solo con elementi diversi da undefined

    oppure:
    - c'è un modo per eveitare che non venga assegnato undefined all'array durante il ciclo di assegnazione?

    Vi ringrazio
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  2. #2
    Ciao,
    se ci posti anche il code del for ci facciamo un'idea piu' chiara...

  3. #3
    Questo è il ciclo for per assegnare i valori all'array, lo stesso lo uso per assegnarli a tutti gli altri:

    codice:
    for (i=0; i<=caricaXml.childNodes[0].childNodes.length; i++) {
       if (caricaXml.childNodes[0].childNodes[i].attributes.area == "2") {
       aNomeCartelle2[i] = caricaXml.childNodes[0].childNodes[i].attributes.nome;
    		
    	}
    }
    la presenza di childNodes[0] è dovuta alla presenza di un tag <area> che racchiude tutti i tag del codice postato in precedenza.
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  4. #4
    up!
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  5. #5
    ma non erano 3 gli array?

    Comunque sbagli la sintassi o il modo di ragionare... devi pushare l'array altrimenti è normalissimo che ti veda gli undefined.

    prova così:

    aNomeCartelle2.push(caricaXml.childNodes[0].childNodes[i].attributes.nome);

    ...vedrai che funzia


    P.S: senza ripetere tutto quel code x navigare i nodi dell'XML ,ti consiglio di assegnarlo ad una variabile...

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.