zoukankan      html  css  js  c++  java
  • xmldom


    function XmlDom() {
        
    if (window.ActiveXObject) {
            
    var arrSignatures = ["MSXML2.DOMDocument.5.0""MSXML2.DOMDocument.4.0",
                                 
    "MSXML2.DOMDocument.3.0""MSXML2.DOMDocument",
                                 
    "Microsoft.XmlDom"];
                             
            
    for (var i=0; i < arrSignatures.length; i++) {
                
    try {
            
                    
    var oXmlDom = new ActiveXObject(arrSignatures[i]);
                
                    
    return oXmlDom;
            
                } 
    catch (oError) {
                    
    //ignore
                }
            }          

            
    throw new Error("MSXML is not installed on your system."); 
                  
        } 
    else if (document.implementation && document.implementation.createDocument) {
            
            
    var oXmlDom = document.implementation.createDocument("","",null);

            oXmlDom.parseError 
    = {
                valueOf: 
    function () { return this.errorCode; },
                toString: 
    function () { return this.errorCode.toString() }
            };
            
            oXmlDom.__initError__();
                    
            oXmlDom.addEventListener(
    "load"function () {
                
    this.__checkForErrors__();
                
    this.__changeReadyState__(4);
            }, 
    false);

            
    return oXmlDom;        
            
        } 
    else {
            
    throw new Error("Your browser doesn't support an XML DOM object.");
        }
    }

    if (isMoz) {

        Document.prototype.readyState 
    = 0;
        Document.prototype.onreadystatechange 
    = null;

        Document.prototype.__changeReadyState__ 
    = function (iReadyState) {
            
    this.readyState = iReadyState;

            
    if (typeof this.onreadystatechange == "function") {
                
    this.onreadystatechange();
            }
        };

        Document.prototype.__initError__ 
    = function () {
            
    this.parseError.errorCode = 0;
            
    this.parseError.filepos = -1;
            
    this.parseError.line = -1;
            
    this.parseError.linepos = -1;
            
    this.parseError.reason = null;
            
    this.parseError.srcText = null;
            
    this.parseError.url = null;
        };
        
        Document.prototype.__checkForErrors__ 
    = function () {

            
    if (this.documentElement.tagName == "parsererror") {

                
    var reError = />([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column (\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;

                reError.test(
    this.xml);
                
                
    this.parseError.errorCode = -999999;
                
    this.parseError.reason = RegExp.$1;
                
    this.parseError.url = RegExp.$2;
                
    this.parseError.line = parseInt(RegExp.$3);
                
    this.parseError.linepos = parseInt(RegExp.$4);
                
    this.parseError.srcText = RegExp.$5;
            }
        };
        
            
        Document.prototype.loadXML 
    = function (sXml) {
        
            
    this.__initError__();
        
            
    this.__changeReadyState__(1);
        
            
    var oParser = new DOMParser();
            
    var oXmlDom = oParser.parseFromString(sXml, "text/xml");
     
            
    while (this.firstChild) {
                
    this.removeChild(this.firstChild);
            }

            
    for (var i=0; i < oXmlDom.childNodes.length; i++) {
                
    var oNewNode = this.importNode(oXmlDom.childNodes[i], true);
                
    this.appendChild(oNewNode);
            }
            
            
    this.__checkForErrors__();
            
            
    this.__changeReadyState__(4);

        };
        
        Document.prototype.__load__ 
    = Document.prototype.load;

        Document.prototype.load 
    = function (sURL) {
            
    this.__initError__();
            
    this.__changeReadyState__(1);
            
    this.__load__(sURL);
        };
        
        Node.prototype.__defineGetter__(
    "xml"function () {
            
    var oSerializer = new XMLSerializer();
            
    return oSerializer.serializeToString(this"text/xml");
        });

    }
  • 相关阅读:
    iOS 疑难杂症 — — 复制 Storyborad 莫名崩溃
    【Swift 2.1】共享文件操作小结(iOS 8 +)
    【Swift】 应用内显示 AppStore 某个应用的详情
    【Swift】iOS开发笔记(一)
    【Swift 2.0】实现简单弹幕功能
    站长名站
    Future home of something quite cool.
    大神们都在用的两个国外的免费离线下载:Rain&amp; LoadBT
    Amazon Publisher Studio让产品推广更简单
    人脉是设计出来的,进入高端人脉圈的方法
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1150105.html
Copyright © 2011-2022 走看看