Problème : Travailler avec des données XML implique souvent de les récupérer sous forme de chaîne à partir de sources dynamiques. Comment pouvons-nous analyser et manipuler efficacement ces données XML à l'aide d'un code JavaScript compatible avec les navigateurs modernes ?
Solution :
Pour les navigateurs prenant en charge l'interface DOMParser, la fonction suivante fournit un mécanisme d'analyse XML simple :
function parseXml(xmlStr) { return new window.DOMParser().parseFromString(xmlStr, "text/xml"); }
Exemple utilisation :
var xml = parseXml('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
Dans les cas où DOMParser n'est pas disponible, comme dans les versions d'Internet Explorer jusqu'à 8, l'extrait de code suivant fournit une solution de secours en utilisant ActiveXObject :
var parseXml; if (typeof window.DOMParser != "undefined") { 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 { throw new Error("No XML parser found"); }
jQuery versions 1.5 et incluez plus tard une méthode $.parseXML() pratique qui offre des fonctionnalités similaires :
var xml = $.parseXML('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!