Analyse XML multi-navigateurs en JavaScript
Dans le développement Web, il est souvent nécessaire d'analyser des fichiers XML en JavaScript, quel que soit le navigateur ou plateforme en cours d'utilisation. Cependant, assurer la compatibilité entre navigateurs peut être délicat.
Solution :
Le code fourni ci-dessous fournit une solution qui fonctionne sur tous les principaux navigateurs, y compris IE 6 :
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"); }
Exemple d'utilisation :
Pour utiliser la solution, invoquez simplement la fonction parseXml avec la chaîne XML à analyser, comme indiqué ci-dessous :
var xml = parseXml("<foo>Stuff</foo>");
L'objet XML résultant peut ensuite être utilisé pour accéder par programme au document XML. Par exemple, l'extrait de code suivant récupère le nom de l'élément racine :
alert(xml.documentElement.nodeName);
Démo en direct :
Pour démontrer la fonctionnalité de cette solution, une démo en direct est fourni ci-dessous :
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"); } var xml = parseXml("<foo>Stuff</foo>"); document.body.innerHTML = "Root element: " + xml.documentElement.nodeName;
Cet extrait de code analyse la chaîne XML et affiche le nom de l'élément racine dans le document corps.
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!