Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 11 di 24
  • livello principiante
Indice lezioni

Leggere un documento XML

Aggiungere i controlli necessari per verificare ed interpretare un documento XML
Aggiungere i controlli necessari per verificare ed interpretare un documento XML
Link copiato negli appunti

Nell'esempio della lezione precedente non facciamo alcuna considerazione sulla natura del file di testo che leggiamo. Tale omissione è voluta ed indica che di fatto la cosa importante è la sola verifica dell'operazione. Infatti il file viene letto e mostrato allo stesso modo, fosse un documento XHTML,XML o un semplice testo.

Per verificare l'operazione è sufficiente quindi creare un file di testo dal nome "testo.txt", sciverci qualcosa dentro, qualunque cosa, e salvarlo nella stessa cartella della pagina HTML.

NOTA. Per poter testare questo esempio, come qualunque altro applicativo basato su XMLHttpRequest, è necessario richiamare la pagina HTML attraverso un webserver (locale o remoto), tramite http://localhost/pagina.html, per esempio. Non funziona invece l'apertura del file dalle cartelle locali del PC, ad esempio C:pagina.html.

Request XML

Interagire con XML non è differente dall'interagire con (x)html o testo, solo che in questo caso il parametro responseText viene utilizzato solo qualora il responseXML risulta nullo, ovvero ogni qualvolta l'XML letto o generato dal server dovesse essere non valido o inesistente.

Per provare a leggere l'XML, aggiungiamo al codice per la richiesta del testo pochi cambiamenti all'interno della funzione assegnata ad onreadystatechange.

Listato 17. Aggiungere i controlli per XML

// ... codice della lezione precedente

// sostituzione del blocco inerente
// la funzione dichiarata in onreadystatechange
ajax.onreadystatechange = function() {

  // verifica dello stato
  if(ajax.readyState === readyState.COMPLETATO) {

    // verifica della risposta da parte del server
    if(statusText[ajax.status] === "OK") {

      // verifica della validità dell'XML restituito dal server
      if(ajax.responseXML)
        // visualizzazione risultato parsing
        elemento.innerHTML = parsaXml(ajax.responseXML);
      else
        // visualizzazione contenuto letto
        // evitando di scrivere la risposta in modo
        // interpretabile dal browser

        elemento.innerHTML = "L'XML restituito dalla richiesta non è valido.<br />" +
              ajax.responseText.split('<').join("<").split('>').join(">");
      }
    else
      // errore di caricamento
      elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />" +
            "Errore riscontrato: " + statusText[ajax.status];
  };
};

// ... resto del codice

La differenza principale sta nei controlli da effettuare ad operazione completata. Oltre a verificare che il server abbia risposto correttamente è necessario verificare che tale risposta sia valida e contenga un documento XML. Può capitare infatti che il file richiesto possa contenere degli errori, riuscendo quindi ad essere letto ma a non essere riconosciuto come XML.

Ti consigliamo anche