Maison >interface Web >js tutoriel >Comment garantir l'analyse XML multiplateforme en JavaScript ?

Comment garantir l'analyse XML multiplateforme en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 00:52:03995parcourir

How to Ensure Cross-Platform XML Parsing in JavaScript?

Analyse XML multiplateforme en JavaScript

L'analyse de fichiers XML en JavaScript peut présenter des défis en raison de problèmes de compatibilité du navigateur. Pour garantir une analyse transparente dans tous les navigateurs, voici une technique qui fonctionne de manière cohérente :

Fonctions d'analyse XML spécifiques au navigateur :

Pour répondre aux différents navigateurs, nous définissons deux fonctions d'analyse :

  • DOMParser (navigateurs modernes) :

    parseXml = function(xmlStr) {
      return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
    };
  • ActiveXObject (Internet Explorer) :

    parseXml = function(xmlStr) {
      var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async = "false";
      xmlDoc.loadXML(xmlStr);
      return xmlDoc;
    };

Mécanisme de repli :

Si aucune de ces fonctions n'est prise en charge, une erreur est générée.

Utilisation :

Pour utiliser ces fonctions, attribuez parseXml à une fonction qui prend en charge votre navigateur cible :

if (typeof window.DOMParser != "undefined") {
    // Use DOMParser for modern browsers
} else if (typeof window.ActiveXObject != "undefined" &&
    new window.ActiveXObject("Microsoft.XMLDOM")) {
    // Use ActiveXObject for Internet Explorer
} else {
    throw new Error("No XML parser found");
}

Exemple :

var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);

Ce code fonctionne dans tous les principaux navigateurs, vous permettant d'analyser les fichiers XML en toute confiance sur toutes les plates-formes et versions de navigateur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn