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");
        });

    }
  • 相关阅读:
    机房收费系统重构(三)—工厂+反射+DAL
    机房收费系统重构(二)—菜鸟入门
    机房收费系统重构(—)—小试牛刀
    vb.net机房收费登录功能
    设计模式总结之结构型模式
    设计模式总结之创建型模式
    大话设计之桥接模式
    大话设计之单例模式
    大话设计之适配器模式
    大话设计之抽象工厂模式
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1150105.html
Copyright © 2011-2022 走看看