leggi xml di jquery

XML

   Silverlight and the Netflix API  Tutorials Silverlight 2.0 Silverlight C# XAML  1/13/2009   

copione

 $.ajax({ type: "post", url: "Default.aspx?cmd=Setting", success: parseXml }); 
     alert (xml); // mostra il successo di file xml
     $ (Xml) .find ( "Tutorial"). Each (function ()
     {
          $ ("# b"). append ($ (this) .attr ("autore"));
     }

I file XML non hanno letto While alert (xml); mostra file XML

Anziché $() , utilizzare $.parseXML per analizzare una stringa XML. ( Aggiornamento: vedi nota sotto, parseXML stato aggiunto in jQuery 1.5 ma è facile aggiungerlo a una versione precedente se lo desideri). Ti darà un documento XML raw; dovresti quindi usare $() per ottenere un wrapper jQuery su quel documento.

Come questo:

 var xml = "" + "" + "" + "Silverlight and the Netflix API" + "" + "Tutorials" + "Silverlight 2.0" + "Silverlight" + "C#" + "XAML" + "" + "1/13/2009" + "" + ""; $($.parseXML(xml)).find("Tutorial").each(function() { var author = $(this).attr("author"); }); 

Esempio dal vivo

Se stai caricando il codice XML tramite ajax , in genere non devi farlo poiché jQuery lo farà per te come parte della sequenza di caricamento e quindi fornirà il documento XML come parametro dei data al tuo callback di success , ma se hai solo una stringa arbitraria e vuoi analizzarla, parseXML è lo strumento per il lavoro.

ajax esempio:

 $.ajax({ url: "the/url/to/load/the/xml/from", method: "GET", dataType: "xml", success: function(data) { var xdoc = $(data); // Note that jQuery has already done the parsing for us display("Getting tutorials"); var tutorials = xdoc.find("Tutorial"); display("Found: " + tutorials.length); tutorials.each(function() { display("Tutoral author: " + $(this).attr("author")); }); }, error: function(jxhr, status, err) { display("Ajax error: status = " + status + ", err = " + err); } }); 

Copia dal vivo


Aggiornamento : parseXML stato aggiunto a jQuery nella v1.5. Se puoi, esegui l’aggiornamento all’ultimo per usarlo. Se non è ansible, se si utilizza una versione obsoleta, è ansible aggiungere facilmente la funzione al proprio script. A differenza di molte parti di jQuery, è ben contenuto nella sorgente jQuery:

 jQuery.parseXML = function( data , xml , tmp ) { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } tmp = xml.documentElement; if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { jQuery.error( "Invalid XML: " + data ); } return xml; }; 

Ecco una copia dal vivo del mio primo esempio, ma usando jQuery 1.4.4 più il precedente.