Chrome浏览器加载XML文档

Chrome浏览器不支持load方法加载XML文档。网上找了下,需要如下解决:

function loadXMLDoc(xml_name)
{
  var xmlDoc;

  try
  {
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");   // Support IE
  }
  catch(e)
  {
    try
    {
     // Support Firefox, Mozilla, Opera, etc
      xmlDoc = document.implementation.createDocument("", "", null) ;// 创建一个空的 XML 文档对象。
    }
    catch(e)
    {
       alert(e.message);
    }
  }

  // 加载XML文档
  try
  {
    xmlDoc.async = false;   // 关闭异步加载
    xmlDoc.load(xml_name);
  }
  catch(e)
  {
     // alert(e.message)   如果浏览器是Chrome,则会catch这个异常:Object # (a Document) has no method "load",所以,以下实现支持chrome加载XML文档(只是粗略的写下)

    var xhr = new XMLHttpRequest();
    xhr.open("GET", xml_name, false);
    xhr.send(null);
    
    xmlDoc = xhr.responseXML.documentElement;
  }

   return xmlDoc;
}

BTW,各浏览器加载XML字符串也不同。

IE使用 loadXML() 方法来解析 XML 字符串:

xmlDoc.loadXML(xml_str);

FireFox等使用DOMParser 对象解析XML字符串:

var parseXml = new DOMParser();
var doc = parseXml.parseFromString(xml_str,"text/xml");

发表回复

您的电子邮箱地址不会被公开。