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

    }
  • 相关阅读:
    IoC 中 car 对象的配置如下,现在要添加 user 对象,并且将 car 注入到 user 中,正确的配置是?
    说说 IoC 中的继承和 Java 继承的区别
    bean 的 scope 有几种类型?请详细列举。
    简单谈谈 IoC 容器的原理
    谈谈你对 Spring IoC 和 DI 的理解,它们有什么区别?
    day13-14 内置函数
    day12 生成器(重要)
    day11 闭包和迭代器
    day10 函数进阶
    day09 函数
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1150105.html
Copyright © 2020-2023  润新知