//兼容方法
        function getXMLDOM(xmlStr) {
            var xmlDom = null;
            if (typeof window.DOMParser != "undefined") {
                xmlDom = (new DOMParser).parseFromString(xmlStr, "text/xml");
                var errors = xmlDom.getElementsByTagName("parsererror");
                if (errors.length > 0) {
                    throw new Error("DOM2模型错误信息" + errors[0].textContent);
                }

}

else if (typeof window.ActiveXObject != "undefined") {
                var version = ['MSXML2.DOMDocument.6.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument'];
                for (var i = 0; i < version.length; i++)  {
                    try {
                        var xmlDom = new ActiveXObject(version[i]);

}

catch (e) {
                        //跳过
                                  }
                                                                       }
                //放在循环外面才能报错
                xmlDom.loadXML(xmlStr); //载入字符串
                //xml序列报错
                if (xmlDom.parseError != 0) {
                    throw new Error("错误信息" + xmlDom.parseError.reason);
                    return xmlDom;
                                                         }

}

else { throw new Error('您的系统或浏览器不支持XML DOM对象!'); }

return xmlDom;

}

//序列化
        function serializerXML(xmlDom) {
            var xml = "";
            if (typeof window.XMLSerializer != "undefined") {
                xml = (new XMLSerializer()).serializeToString(xmlDom);
            }
            else if (typeof xmlDom.xml != "undefined") {
                xml = xmlDom.xml;

}
            return xml;
        }

var xmlStr = "<root>\n<user>CPU123</user>\n</root>";xml加载字符串

var xmlDom = getXMLDOM(xmlStr);//调用兼容方法得到一个xml DOM对象

alert(serializerXML(xmlDom));//调用XML序列化
    
    为了跨越所有浏览器兼容,外面放弃了从外部加载XML文件,而使用了字符
    串XML加载和序列化

JavaScript 【跨浏览器处理XML,做个兼容】的更多相关文章

  1. javascript跨浏览器操作xml

    //跨浏览器获取xmlDom function getXMLDOM(xmlStr) { var xmlDom = null; if (typeof window.DOMParser != 'undef ...

  2. JavaScript 【跨浏览器XPath,做个兼容】

    IE的Xpath 获取单一节点 var xmlDom = getXMLDOM(xmlStr);//调用之前写好的方法获得XMLDOM对象 // var node = xmlDom.selectSing ...

  3. 跨浏览器读取XML

    这里跨浏览器,但是只能读取字符串XML文档,可以通过Ajax方式load一个XML文档,将文件XML转变为字符串 // 跨浏览器返回XML DOM对象 function getXMLDOM(xmlSt ...

  4. JavaScript跨浏览器绑定事件函数的优化

    JavaScript作为一门基于事件驱动的语言(特别是用在DOM操作的时候),我们常常需要为DOM绑定各种各样的事件.然而,由于低版本的IE的不给力,在绑定事件和移除事件监听上都与众不同,我们常常需要 ...

  5. JavaScript跨浏览器处理事件以及相关对象

    主流的浏览器和IE浏览器在处理事件和事件对象上是有所区别的,我们一般会通过EventUtil进行封装,这样,就可以正常的跨浏览器处理事件了,本文的主要内容总结自<JavaScript高级程序设计 ...

  6. javascript跨浏览器事件对象类库

    一.前言 学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家. 二.事件对象封装 将对浏览器事件对象的操作封装成eventObject.js方便调用 // ...

  7. Javascript跨浏览器的事件对象

    一.跨浏览器的事件对象 var EventUtil = { ///添加事件 addHandler: function (element, type, handler) { if (element.ad ...

  8. 封装常用的Javascript跨浏览器方法

    var EventUntil={ // 跨浏览器的添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListen ...

  9. javascript 跨浏览器事件处理

    <div id="myDiv" style="width:100px; height:100px; border:1px solid #f00;"> ...

随机推荐

  1. JavaScript面向对象精要(一)

    数据类型 在JavaScript中,数据类型分为两类: 原始类型:保存一些简单数据,如true.5等.JavaScript共同拥有5中原始类型: boolean:布尔.值为true或false num ...

  2. 第二章实例:ArrayAdapter结合ListView列表视图

    package mydefault.packge; import com.example.codeview.R; import android.app.Activity; import android ...

  3. Jq自定义动画

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 动态分配内存补充 realloc

    当再次在原来申请的内存基础上再加内存的时候用realloc,如果第一次分配的内存后面存储地方够用,则连着原来的申请,如果不够用,就重新找到一块够用的地方,然后把原来的复制过去 int main(int ...

  5. MySql优化-你的SQL命中索引了吗

    在项目开发中SQL是必不可少的,表索也一样.这些SQL的运行性能不知道吗?有多少是命中了索引的?命中哪个索引?索引中有哪个是无效索引?这些无效索引是否会影响系统的性能?带着这些问题我们一起来学习一下. ...

  6. list集合接口

    import java.util.ArrayList; import java.util.List; class Phone { private String brand; private doubl ...

  7. gdb零散学习心得。

    引用: 记录学习心得.未来将统一整理. 一.基础知识 1:细节整理. 1,启动GDB的前置要求. 1)使用gcc/g++时,添加-g的指令.例如:g++ -g test.cpp -o test 2)如 ...

  8. js 跨域的使用

    try{document.domain="jincin.com"}catch(error){} 需要在被调用的函数和调用函数出都要加入上面相同的语句 下面看一下第二种跨域的解决方案 ...

  9. 表达式 - PHP手册笔记

    PHP是一种面向表达式的语言.表达式的定义可以描述为,任何有值的东西. PHP支持全等运算符===(值和类型均相同)和非全等运算符!==(值或者类型不同). PHP的三元条件运算符貌似和C语言不太一样 ...

  10. Javascript自定义类

    JavaScript并不是严格的面向对象的语言,但是带有面向对象的一些特性,我们可以通过这些特性创建js中的自定义类. JavaScript中的类其实是function关键字包裹的一系列变量和方法. ...