JAVASCRIPT处理返回的XML字符串

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

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

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

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

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

}

}

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

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

// 获得检测结果

function getURLResult(URL)
... {
varurl=URL;
varxmlhttp=newActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open(
"POST",url,false);
xmlhttp.send();
varxmlDoc=newActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc
=loadXML(bytes2BSTR(xmlhttp.responseBody));
varNodeLists=xmlDoc.selectNodes("/root/checkresult");
varresult=newArray();

for(vari=0;i<NodeLists.length;i++)...{
result[i]
=NodeLists[i].text;
}

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

你可能感兴趣的:(JavaScript,xml,Ajax,Microsoft)