因为自己在开发过程中总是要写一大堆的 new ActiveX...之类的代码 还要写一些相关的检查状态的代码 所以就萌生出做一个自定义类 这样可以用来获取需要的 xml dom 这样拿来就可以用了 嘿嘿 // / // / 获取 xml 对象类 // / guanxuejun@126.com // / QQ:5360375 // / // / 根据请求一个 Url/给定一个 string 来获取一个 xml 的方法 // / 之所以封装起来是不想每次都写这一大堆代码 :-) // / Public XMLDocumentClass function ClassIPSXmlDocumnet() // / function ClassIPSXmlDocumnet() ... { /// 属性 this.xmlVersion = 3; /// xml版本 this.xmlVersionString = "Microsoft.XMLDOM"; /// xml版本 this.type = ""; /// 类别 this.url = ""; /// url 地址 this.string = ""; /// xml string 属性 this.instanceName = "oIPSXml"; /// 实例名 this.bXmlDocumnetCreated = false; /// 是否已经创建 xml document this.errorCode = null; /// 错误代码 this.errorReason = ""; /// 错误描述 /// 方法 /// 初始化 this.getXml = ClassIPSXmlDocumnet_getXml; } // / // / 获取 XMl 对象 // / ::sType 对象类别 ["url"||"string"] // / ::sParamValue // / ::iVersion [3|4] // / function ClassIPSXmlDocumnet_getXml(sParamValue, sType, iVersion) ... { if (sParamValue.length == 0) ...{ this.errorCode = -1000; this.errorReason = "getXml()方法的参数 sParamValue 未设置。"; return null; } if (sType.length == 0) ...{ this.errorCode = -2000; this.errorReason = "getXml()方法的参数 sType 未设置。"; return null; } if (isNaN(iVersion)) ...{ this.errorCode = -3000; this.errorReason = "getXml()方法的参数 iVersion 用来定义创建 xml 对象的版本,应当是数值 1 或者 2。"; return null; } else ...{ iVersion = parseInt(iVersion); } this.xmlVersion = iVersion; switch(this.xmlVersion) ...{ case 3: this.xmlVersionString = "Microsoft.XMLDOM"; break; case 4: this.xmlVersionString = "Msxml2.DOMDocument.4.0"; break; default: this.errorCode = -3000; this.errorReason = "getXml()方法的参数 iVersion 用来定义创建 xml 对象的版本,应当是数值 1 或者 2。"; return null; break; } /// 构建 xml 对象 var iInnerXmlErrorCode = null; var sInnerXmlReason = ""; var bInnerXmlCreated = false; var oInnerXml = new ActiveXObject(this.xmlVersionString); oInnerXml.async = false; //同步传输 oInnerXml.onreadystatechange = function() ...{ iInnerXmlErrorCode = oInnerXml.parseError.errorCode; sInnerXmlReason = oInnerXml.parseError.reason; if (oInnerXml.parseError.errorCode == 0) ...{ if (oInnerXml.readyState == 4) ...{ sInnerXmlReason = "加载成功!"; bInnerXmlCreated = true; } } } /// 分析加载方式 this.type = sType.toLowerCase(); switch(this.type) ...{ case "url": this.url = sParamValue; oInnerXml.load(this.url); break; case "string": this.string = sParamValue; oInnerXml.loadXML(this.string); break; default: this.errorCode = -4000; this.errorReason = "getXml()方法的参数 sType 设置错误,目前只能设置为 url(给定 url 地址获取 xml)或者 string(给定 xml string 地址获取 xml)。"; return null; break; } /// 返回 xml 对象 this.bXmlDocumnetCreated = bInnerXmlCreated; this.errorCode = iInnerXmlErrorCode; this.errorReason = sInnerXmlReason; if (this.bXmlDocumnetCreated) ...{ return oInnerXml; } else ...{ return null; }} // / 调用页面只需要运行 oIPSXml.getXml(sParamValue, sType, iVersion) 方法即可获取 xml 对象 // / var oIPSXml; // / oIPSXml = new ClassIPSXmlDocumnet(); // / oIPSXml.instanceName = "oIPSXml";