用Ajax读取XML格式的数据

  用Ajax读取XML格式的数据,只需要读取XMLHttpRequest对象返回的responseXML属性即可。代码如 下:

  1、Client - helloworld.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<html>
<head>
<title>Ajax Hello World</title>
<script type="text/javascript">
var xmlHttp;

function createXMLHttpRequest(){
    
if(window.ActiveXObject){
        xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
    }
    
else if(window.XMLHttpRequest){
        xmlHttp 
= new XMLHttpRequest();
    }
}

function startRequest(){
    createXMLHttpRequest();
    
try{
        xmlHttp.onreadystatechange 
= handleStateChange;
        xmlHttp.open(
"GET""data.xml"true);
        xmlHttp.send(
null);    
    }
catch(exception){
        alert(
"您要访问的资源不存在!");
    }
}

function handleStateChange(){    
    
if(xmlHttp.readyState == 4){        
        
if (xmlHttp.status == 200 || xmlHttp.status == 0){
            
// 取得XML的DOM对象
            var xmlDOM = xmlHttp.responseXML;
            
// 取得XML文档的根
            var root = xmlDOM.documentElement;            
            
try
            {
                
// 取得<info>结果
                var info = root.getElementsByTagName('info');
                
// 显示返回结果
                alert("responseXML's value: " + info[0].firstChild.data);
            }
catch(exception)
            {
                
            }
        }
    }
}
</script>
</head>
<body>
    
<div>
        
<input type="button" value="return ajax responseXML's value"
                onclick
="startRequest();" />
    
</div>
</body>
</html>

 

2、Server - data.xml
<?xml version="1.0" encoding="GB2312" ?> 
<root>
    
<info>hello world!</info>
</root>

附源码:responseXML.rar

Update1:
  在 IE 读取XML格式数据时,代码必需在服务器才能运行,本地可能无权访问返回的XML对象。

 相关文章:

posted on 2006-05-28 17:40  传说一梦  阅读(2750)  评论(2编辑  收藏  举报

导航