JAVASCRIPT处理返回的XML字符串

当通过AJAX操作的时候,返回的XML如下 :

<? xml version="1.0" encoding="gbk" ?>
< root >
< checkresult >
< %=result % >
</ checkresult >
< checkresult >
< %=message % >
</ checkresult >
</ root >

其中返回两个内容,一个结果数,以及一个针对该结果数的消息。

AJAX这个就不用去说怎么样操作了,下面这个函数只将返回字符串组成XML包的形式:

 

// 装载字符串,将字符串组成XML的形式返回
function  loadXML(xmlString)
... {
    
var xmldoc;
    
try ...{
        xmldoc 
= new ActiveXObject("Microsoft.XMLDOM");
        
if(!xmldoc) xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
    }
 catch(e)...{}
    
if(!xmldoc) ...{
        
return null;
    }
 else ...{
        xmldoc.async 
= "false";
        xmldoc.loadXML(xmlString);
        
if(xmldoc.parseError.errorCode == 0 ) ...{
            
return xmldoc;
        }
 else ...{
            
return null;
        }

    }

}

但其中需要注意一点,不能够直接利用返回得到的字节流,因为他们不属于字符串,这个时候需要将得到的字节流转换为字符串,才可以操作成功。我本人就遇到这个问题,直接操作就会出错,但我把这里传入的参数改为对应的XML字符串就可以,但我现在还不知道怎么样将字节流转换为字符串,因为总是要内网外网的切换做测试,挺麻烦的。

下面一个方面就是将XML中我们需要的数据,处理数组,这样我们就可以在其它的地方使用:

 

// 获得检测结果

function  getURLResult(URL)
... {
    
var url = URL;
    
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
    xmlhttp.open(
"POST", url, false);
    xmlhttp.send();
    
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");    
    xmlDoc 
= loadXML(bytes2BSTR(xmlhttp.responseBody));
    
var NodeLists = xmlDoc.selectNodes("/root/checkresult");
    
var result = new Array();
    
   
for(var i=0;i<NodeLists.length;i++)...{
        result[i] 
= NodeLists[i].text;
    }

    
return result;
}

在前台页面,就可以将需要的结果进行操作了。

本文出自:冯立彬的博客




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值