JQuery e la funzione parseXML
JQuery consente il parsing di una stringa XML, utilizzando le funzioni native del browser, in modo da trasformarla in un oggetto Document e renderla manipolabile.
Tale oggetto può essere inoltre wrappato all’interno di un oggetto JQuery in modo tale da poter utilizzare i metodi della libreria per trattarlo.
Il metodo in questione è jQuery.parseXML(data), e il parametro data è la stringa XML well-formed.
Il suo utilizzo è estremamente semplice
$.parseXML("<books><book><author>Pirandello</author></book></books>");
Questo statement può essere eseguito in uno degli strumenti per web developer (vedi Firebug o il corrispettivo per Chrome o Safari). Si vedrà subito a log un nuovo oggetto Document, ispezionabile.
Vediamo un semplice utilizzo: creeremo una stringa XML contenente una lista di libri, chiameremo la funzione parseXML e, utilizzando JQuery, attraverseremo il documento per riempire una lista nella pagina HTML:
<html> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script> function newBookXML(author, title) { return "<book><author>"+author+"</author><title>"+title+"</title></book>"; } var booksXML = "<books>" + newBookXML("Pirandello", "Il fu Mattia Pascal") + newBookXML("Collodi", "Pinocchio") + newBookXML("Tolkien", "Il Silmarillion") + "</books>"; $(document).ready(function() { var jqXML = $($.parseXML(booksXML)); var bookContainer = $("#bookContainer"); // jqXML.find("books > book").each(function() { var $this = $(this); var author = $this.children("author").text(); var title = $this.children("title").text(); bookContainer.append("<li><b>"+author+"</b> - <i>"+title+"</i></li>"); }); }); </script> <body> <h3>Lista dei libri</h3> <ul id="bookContainer"> </ul> </body> </html>
La funzione newBookXML serve per creare un entry nella stringa XML (assegnata alla variabile booksXML).
All’interno della $(document).ready c’è la creazione del Document dalla stringa e il suo attraversamento mediante le note funzioni di JQuery.
Il risultato finale è una lista di tag li aggiunti all’ul identificato dall’id bookContainer.