封装起我的XML DOM

因为自己在开发过程中总是要写一大堆的 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";
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值