2010-06-16 6 views
4

Quelle est l'alternative de jQuery au code JavaScript suivant?Comment analyser XML avec jQuery?

var xmlobject = (new DOMParser()).parseFromString(xmlstring, "text/xml"); 

Je crois qu'une alternative jQuery serait plus compatible avec plusieurs navigateurs?

+0

Voir http://stackoverflow.com/questions/2124924/can-xml-be-parsed-reliably-using-jquerys-responsexml-syntax et http://stackoverflow.com/questions/2908899/jquery -wont-parse- xml-with-nodes-called-option (indice: jQuery n'est pas destiné à analyser xml. Il est destiné à * traverser * un arbre DOM déjà analysé) –

Répondre

3

L'approche multi-navigateur est la suivante, que je posté il y a quelques minutes en réponse à une question similaire:

var parseXml; 

if (window.DOMParser) { 
    parseXml = function(xmlStr) { 
     return (new window.DOMParser()).parseFromString(xmlStr, "text/xml"); 
    }; 
} else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { 
    parseXml = function(xmlStr) { 
     var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = "false"; 
     xmlDoc.loadXML(xmlStr); 
     return xmlDoc; 
    }; 
} else { 
    parseXml = function() { return null; } 
} 

var xml = parseXml("<foo>Stuff</foo>"); 
if (xml) { 
    window.alert(xml.documentElement.nodeName); 
} 
+0

Nice. Où jQuery arrive: '$ (parseXml (" Stuff ")). Find ('stuff')' (c'est-à-dire que jQuery est correctement utilisé pour parcourir, pas analyser). –

-1

var $parsedXml = $(xmlstring);

Pour exmaple, si vous avez quelque chose comme

<object> 
    <property id="prop1" value="myVal" /> 
</object> 

comme xmlstring, vous pourriez faire

var prop1 = $(xmlstring).find('#prop1').attr('value');

pour obtenir la valeur de la propriété de l'objet.

+0

Avez-vous testé cela dans IE? – user113716

+2

[Cela ne fonctionne pas bien] (http://stackoverflow.com/questions/2908899/jquery-wont-parse-xml-with-nodes-called-option). – SLaks

+0

Vraiment? Les travaux trouvent pour moi - http://jsbin.com/ikuvu/edit –