进入本人ajax学习第三课,使用ajax获取XML文档中信息。效果图以下是HTML部分的代码:

<html>
<
head>
<
title>ajax 3</title>
<
script 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","paresXML.xml",true);
  
xmlHttp.send(null);
}

function handleStateChange(){

  if(xmlHttp.readyState == 4){
    
if(xmlHttp.status == 200){
      
if(requestType == "north"){
        
listNorthStates();
      }
else if(requestType == "all" ont style="font: 10pt Fixedsys; color: #0a246a">){
      
        listAllStates();
      }
    }
  }
}

function listNorthStates(){

  var xmlDoc xmlHttp.responseXML;
  
var northNode xmlDoc.getElementsByTagName("north")[0];
  
var out "Northern States";
  
var northStates northNode.getElementsByTagName("state");
  
  
outputList("Northern States",northStates);
}

function listAllStates(){

  var xmlDoc xmlHttp.responseXML;
  
var allStates xmlDoc.getElementsByTagName("state");
  
  
outputList("All States in Document",allStates)
}

function outputList(title,states){

  var out title;
  
var currentState null;
  
for(var states.lengthi++){
  
    
currentState states[i];
    
out out+"\n"+currentState.childNodes[0
].nodeValue;
    
alert(out);
  }
}
</
script>
</
head>
<
body>
<
input type="button" value="查看所有" onclick="startRequest('all')" /><br />
<
input type="button" value="查看north" onclick="startRequest('north')" />
</
body>
</
html>

以下是XML文件代码:

<?xml version="1.0" encoding="UTF-8"?>
<states>
  <north>
    <state>
Minnesota</state>
    <state>
Iowa</state>
    <stae>
North Dakota</stae>
  </north>
  <south>
    <state>
Texas</state>
    <state>
Oklahoma</state>
    <state>
Louisiana</state>
  </south>
  <east>
    <state>
New York</state>
    <state>
North Carolina</state>
    <state>
Massachusetts</state>
  </east>
  <west>
    <state>
California</state>
    <state>
Oregon</state>
    <state>
Nevad</state>
  </west>
</states>

首先listAllStates函数创建了一个局部变量xmlDoc,并将这个变量初始化设置为服务器返回的XML文档,这个XML文档是使用XMLHttpRequest对象的responseXML属性得到的。利用XML文档的getElementsByTagName方法可以获取文档中所有标记名为state的元素。getElementsByTagName方法返回了包含所有state元素的数组,这个数组将付给名为allStates得局部变量。从XML文档获取了所有state元素之后,listAllStates函数调用outputList函数并在警告框中显示这些state元素。listAllStates方法将迭代处理state元素的数组,将各各元素的响应州名逐个追加到一个串中,这个串最后将显示在警告框中。 outputList函数迭代处理数组中的所有元素,将当前元素赋给currentState变量。因为表示州名的文本元素总是state元素的第一个子元素,所以可以使用chinldNodes属性来得到文本元素。 listNorthStates函数与listAllStates函数是类似的,唯一不同的是它使用了getElementsByTagName方法获得north标记,从而获得XML文档中的north元素。因为文档只包含一个north元素,而且getElementsByTagName方法总是返回一个数组,所以用[0]下标来抽取north元素。注:此ajax学习资料来自 方正apabi联盟制作的《ajax基础教程》译自:《Founations of Ajax》

除非另有声明,本站遵循【署名-非商业性使用-相同方式共享 3.0 共享协议】授权。 转载原创文章请注明,转载自:Neeke[http://www.ineeke.com] 本文链接: http://www.ineeke.com/archives/399/