//兼容方法
        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. 449A - Jzzhu and Chocolate 贪心

    一道贪心题,尽量横着切或竖着切,实在不行在交叉切 #include<iostream> #include<stdio.h> using namespace std; int m ...

  2. poj 3308 (最大流)

    题意:n*m的地图,给出L个火星人登陆的坐标,要在火星人登陆地球的瞬间全部消灭他们,有一种激光枪,一次可以消灭一行(或一列),消灭一行(或一列)有不同的代价,总代价是所有激光枪的代价之积. 思路:之前 ...

  3. 利用iptables将本地的80端口请求转发到8080,当前主机ip为192.168.1.1,命令怎么写?

    iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j REDIRECT --to-port 8080 内网上外网: ipt ...

  4. jQuery UI的基本使用方法与技巧

    一.概述 jQuery UI is a widget and interaction library built on top of the jQuery JavaScript Library, th ...

  5. android中跨进程通讯的4种方式

    转自:http://blog.csdn.net/lyf_007217/article/details/8542359 帖子写的很好.看来一遍,试了一遍,感觉太有意义.必须转过来! android中跨进 ...

  6. 我的美国(北美)计算机CS实习面试经验分享

    过去的一年多里,参加了一些面试,虽然面过的公司不多,但都从头一直走到尾.毕竟自己也是花了大量的时间和精力在这一场场的面试里.所以,就絮叨下自己的一些经验,希望能给在美国找实习找工作的同学们提供一点点帮 ...

  7. Information seeking letter, hard copy version

    23 Roanoke Street Blacksburg, VA 24060 (540) 555-1123 K.Walker@vt.edu October 23, 20XY Mr. James G. ...

  8. c# 异步调用简单例子(转载)

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  9. hbase 二级索引创建

    在单机上运行hbase 二级索引: import java.io.IOException; import java.util.HashMap; import java.util.Map; import ...

  10. [转]标准C++字符串string以及MFC6.0字符串CString的tokenize和split函数

    标准字符串的方法: /******************************************** the tokenize function for std::string ****** ...