用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> |