日期:2014-05-16  浏览次数:20423 次

[转]js操作异步请求返回的XML数据操作
    //兼容性创建xmlHttp对象  
    if (window.ActiveXObject && !window.XMLHttpRequest) {  
        window.XMLHttpRequest = function() {  
            var msxmls = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",  
                          "MSXML2.XMLHttp", "Microsoft.XMLHttp"],ex;  
            for (var i = 0; i < msxmls.length; i++)  
            try {  
                return new ActiveXObject(msxmls[i])  
            } catch(ex) {}  
            throw new Error("No   XML   component   installed! ");  
        }  
    }  
    //实例化一个xmlhttp对象  
    var xmlHttp = new XMLHttpRequest();  
    //XMLHttp的readyState状态改变时处理函数绑定  
    xmlHttp.onreadystatechange = HandlerStateChange;  
      
    //创建一个新的http请求,并指定此请求的方法、URL以及验证信息  
    xmlHttp.open("GET", "SiteConfigXML.xml", false);  
      
    //发送请求到http服务器并接收回应  
    xmlHttp.send();  
      
    function HandlerStateChange() {  
    //状态0 -- 对象已建立,但是尚未初始化(尚未调用open方法)  
    //状态1 -- 对象已建立,尚未调用send方法  
    //状态2 -- send方法已调用,但是当前的状态及http头未知  
    //状态3 -- 已接收部分数据,因为响应及http头不全,  
    //         这时通过responseBody和responseText获取部分数据会出现错误  
    //状态4 -- 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据  
    //alert(xmlHttp.readyState)  
      
        //返回当前请求的http状态码[200--成功  
        //alert(xmlHttp.status);  
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {  
            //responseText 将响应信息作为字符串返回  
            //responseXML  xml的文档节点  
            var xmlData = xmlHttp.responseXML;  
            //documentElement 返回跟节点  
            var root = xmlData.documentElement;  
            //attributes 获取属性集合  
            var attr = root.attributes;  
            //alert(attr.length)  
            //ie下获取节点值 text  
            //FF下获取节点值 textContent  
            //兼容性获取  
            var oFind = root.getElementsByTagName("findTag")[0];  
            var isFindTXT = root.text ? oFind.text: oFind.textContent;  
            alert(isFindTXT)  
        }  
    }