Ciao a tutti!
Dopo molto tempo sono tornato a smanettare e purtroppo mi si è accumulata un pò troppa ruggine...
Attualmente ho un problema che mi attenaglia da qualche giorno, ho la necessità di estrapolare dei dati da un file XML usando Javascript e ho trovato un esempio in rete ma non riesco a farlo funzionare, di seguito i codici:
index.html
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>TABLE e XML con DOM</title>
<script language="javascript" type="text/javascript">
/**
* Script Javascript per la popolazione di una Tabella HTML
* attraverso documento XML e funzioni DOM
// Funzione per il caricamento del documento XML e passaggio alla funzione per la gestione dei risultati ottenuti
function loadXML(url, handler) {
/*
* url = posizione del file XML da caricare
* handler = nome della funzione da richiamare a caricamento documento XML eseguito
*/
// Determino se l'implementazione DOM Level 2 e' supportata
if ( document.implementation && document.implementation.createDocument ) {
// Creo il nuovo oggetto XML
var xml = document.implementation.createDocument("", "", null);
// Imposto l'evento onload del documento
xml.onload = function() { handler(xml); }
// Carico il file XML dall'URL passato alla funzione
xml.load("data.xml");
} else if ( window.ActiveXObject ) { // Caso contrario, ricorro all'API proprietaria Microsoft per Browser IE
// Creo il nuovo oggetto XML
var xml = new ActiveXObject("Microsoft.XMLDOM");
// Imposto l'evento onload del documento
xml.onreadystatechange = function() {
if ( xml.readyState == 4 ) { handler(xml); }
}
// Carico il file XML dall'URL passatto alla funzione
xml.load("data.xml");
}
}
// Funzione per la popolazione della tabella
function popolaTabella(xml) {
/**
* xml = documento XML
*/
// Recupero la Tabella HTML
var table = document.getElementById("t1");
// Recupero tutti gli elementi "utente" definiti all'interno del documento XML
var utenti = xml.getElementsByTagName("utente");
// Ciclo attraverso tutti gli elementi e popolazione della tabella HTML
for (var i = 0; i < utenti.length; i++) {
// Recupero ogni singolo elemento "utente" del documento XML
var e = utenti[i];
// Recupero i vari valori per ogni elemento "utente"
var nominativo = e.getElementsByTagName("nominativo")[0].firstChild.data;
var punteggio = e.getElementsByTagName("punteggio")[0].firstChild.data;
// Creo ogni singolo riga della tabella HTML
var row = table.insertRow(i + 1); // + 1 = Non considero la testata della tabella
row.insertCell(0).appendChild(document.createTextNode(nominativo));
row.insertCell(1).appendChild(document.createTextNode(punteggio));
}
}
</script>
</head>
<body>
<input type="button" value="carica dati" onclick="javascript:loadXML('data.xml', popolaTabella);" />
<table id="t1" border="1" width="50%">
<tr>
<th width="80%"><b>Nominativo</b></th>
<th width="20%"><b>Punteggio</b></th>
</tr>
</table>
</body>
</html>
data.xml
codice:
<?xml version="1.0"?><utenti>
<utente>
<nominativo>Paolino Paperino</nominativo>
<punteggio>10</punteggio>
</utente>
<utente>
<nominativo>Mickey Mouse</nominativo>
<punteggio>8</punteggio>
</utente>
<utente>
<nominativo>Paperoga</nominativo>
<punteggio>5</punteggio>
</utente>
<utente>
<nominativo>Gastone</nominativo>
<punteggio>2</punteggio>
</utente>
</utenti>
Qualcuno mi riesce ad aiutare?
Grazie mille!