52,797
社区成员
发帖
与我相关
我的任务
分享
function handleStateChange()
{
/*if(xmlhttp.readyState==1)
{
//document.getElementById("div1").innerHTML = "加载中.......";
}*/
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)//加个判断是否正确返回
{
if(requestType=="all")
{
listAllStates();
}
else if(requestType=="north")
{
listEastStates();
}
}
}
else if(xmlhttp.status==404)
alert("XML文件路径不正确!");
else alert("未知错误!");
}
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/xml; charset=GBK" >
<script language="javascript" type="text/javascript">
var xmlhttp;
var requestType = "";
function createXmlHttpRequest()
{
if(window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
}
function startRequest(requestedlist)
{
requestType = requestedlist;
createXmlHttpRequest();
xmlhttp.onreadystatechange = handleStateChange;
xmlhttp.open("GET","aa.xml",true);
xmlhttp.send(null);
}
function handleStateChange()
{
/*if(xmlhttp.readyState==1)
{
//document.getElementById("div1").innerHTML = "加载中.......";
}*/
if(xmlhttp.readyState==4)
{
if(requestType=="all")
{
listAllStates();
}
else if(requestType=="north")
{
listEastStates();
}
}
}
function listAllStates()
{
var XmlDoc = xmlhttp.responseXML;
var allState = XmlDoc.getElementsByTagName("state");
outputlist("所有的节点",allState);
}
function listEastStates()
{
var XmlDoc = xmlhttp.responseXML;
var eastNode = XmlDoc.getElementsByTagName("north")[0].getElementsByTagName("state");
//var eastState = eastNode;
outputlist("east中的节点",eastNode);
}
function outputlist(title,states)
{
var out = title;
var currentState = null;
for(var i=0;i <states.length;i++)
{
currentState = states[i];
out = out + "\n-" + currentState.childNodes[0].nodeValue
}
document.getElementById("div1").innerHTML = out;
}
</script>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="">
<input type="button" name="all" value="显示全部信息" onClick="startRequest('all')"> <br>
<input type="button" name="east" value="显示east信息" onClick="startRequest('north')"> <br>
<div id="div1"> </div>
</FORM>
</BODY>
</HTML>
aa.xml
<?xml version="1.0" encoding="GBK" ?>
<states>
<north>
<state> north1 </state>
<state> north2 </state>
<state> north3 </state>
</north>
<south>
<state> south1 </state>
<state> south2 </state>
<state> south3 </state>
</south>
<east>
<state> east1 </state>
<state> east2 </state>
<state> east3 </state>
</east>
<west>
<state> west1 </state>
<state> west2 </state>
<state> west3 </state>
</west>
</states>
<script language="javascript">
function GE(a){return document.getElementById(a);}
function Check(){
var X=new ActiveXObject("Msxml2.XMLHTTP");
if(X){
X.onreadystatechange=function(){
if(X.readyState==4){
if(X.status==200){
alert(X.responseText) ;
}
}
};
X.open('POST','1.xml',true);
X.send(null)
}
else{
GE('msg').innerHTML='你的不支持XMLHttpRequest'
}
}
</script>
<?xml version="1.0" encoding="gb2312"?>
<recipes>
<recipe>
<list>hellow1</list>
<list>hellow2</list>
<list>hellow3</list>
</recipe>
</recipes>
//楼主的实在太乱 ,下面的可以供你调用 ,换到你的里面就是:
window.onload = function(){
alert(Ajax.json("area.xml" ,"text"));
};
//ajax dream && ajax 操作
var Try = {
these: function() {
var returnValue = null;
for (var i = 0, length = arguments.length; i < length; i++)
{
var lambda = arguments[i];
try {
returnValue = lambda() ;
break;
}
catch (e)
{
returnValue = e;
}
}
return returnValue;
}
};
var Ajax = {
Create: function(){
return Try.these(
function() {return new XMLHttpRequest()},
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')}
) || null ;
},
Xml: function(oXML , sURL){
var oXmlHttp = this.Create() ;
oXmlHttp.Open("POST" , sURL , false);
oXmlHttp.Send(oXML);
return oXmlHttp.responseXML;
},
Json: function(sURL , sType){
var JsonHttp = this.Create();
JsonHttp.Open("POST" , sURL , false);
JsonHttp.Send(null);
if (JsonHttp.responseText != ""){
if (sType == 'text'){
return JsonHttp.responseText ;
}
else{
eval("var data = " + JsonHttp.responseText) ;
return data ;
}
}
}
};