io faccio così, all'inizio parso il file xml e popolo un array che ha i nomi dei campi uguale ai nodi del file xml.
Codice PHP:
nuovo = new XML();
nuovo.ignoreWhite = true;
file = "admin/news.xml";
nuovo.load(file);
nuovo.onLoad = function(success) {
if (success) {
dati = new Array();
tot_attive=0;
tot_news = this.firstChild.childNodes.length;
for(i=0; i<tot_news; i++){
dati[i] = [];
if(this.childNodes[0].childNodes[i].attributes.attivo=="si"){
dati[i].id=this.childNodes[0].childNodes[i].attributes.id; //id
dati[i]._data=this.childNodes[0].childNodes[i].attributes.data; //data
dati[i].sezione=this.childNodes[0].childNodes[i].attributes.sezione; //sezione
dati[i].titolo=this.childNodes[0].childNodes[i].childNodes[0].firstChild.nodeValue; //titolo
dati[i].testo=this.childNodes[0].childNodes[i].childNodes[2].firstChild.nodeValue; //testo
dati[i].immagine=this.childNodes[0].childNodes[i].childNodes[4].firstChild.nodeValue; //immagine
dati[i].dwn=this.childNodes[0].childNodes[i].childNodes[5].firstChild.nodeValue; //download
dati[i].link=this.childNodes[0].childNodes[i].childNodes[6].firstChild.nodeValue; //link
zeri_ordine=this.childNodes[0].childNodes[i].attributes.ordine;
//qui conto le news eventi e prodotti
if(dati[i].sezione=="prodotti"){tot_pro++}else if(dati[i].sezione=="eventi"){tot_eve++};
tot_attive++;
//aggiungo lo zero davanti al numero
num=this.childNodes[0].childNodes[i].attributes.ordine;
zero="000";
num=substring(zero, 0, zero.length-num.length)+num;
dati[i].ordine=num;
}
}
} else {
trace("errore di lettura");
}
};
System.useCodepage=true;
quindi se dopo voglio sapere il titolo della quarta news farò così:
titolo = dati[3].titolo; //ho messo 3 perchè il ciclo parte da 0