ajax遍歷xml文檔的方法
本文實(shí)例講述了ajax遍歷xml文檔的方法。分享給大家供大家參考。具體分析如下:
XMLHttpRequest對(duì)象提供了兩個(gè)可以用來(lái)訪問(wèn)服務(wù)器響應(yīng)的屬性。第一個(gè)屬性responseText將響應(yīng)提供為一個(gè)串,第二個(gè)屬性 responseXML將響應(yīng)提供為一個(gè)XML對(duì)象。一些簡(jiǎn)單的用例就很適合按簡(jiǎn)單文本來(lái)獲取響應(yīng),如將響應(yīng)顯示在警告框中,或者響應(yīng)只是指示成功還是失 敗的詞
前面<ajax小結(jié)>中的例子是從XMLHttpRequest對(duì)象獲取服務(wù)器響應(yīng),并使用XMLHttpRequest對(duì)象的responseText屬性將響應(yīng)獲取為文本。
這次我們來(lái)使用XMLHttpRequest對(duì)象的responseXML屬性,將結(jié)果獲取為XML文檔.這樣一來(lái),我們就可以使用W3C DOM方法來(lái)遍歷XML文檔。(前面文章或多或少講過(guò)些DOM,在此不重復(fù))
OK,下面來(lái)看例子.
首先還是一段XML文檔代碼(parseXML.xml)如下:
parseXML.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <states> <north> <state>Minnesota</state> <state>Iowa</state> <state>North Dakota</state> </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>Nevada</state> </west> </states>
MyJsp.jsp如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <script type="text/javascript"> var flg=false; var requestType = ""; //得到XMLHttpRequest對(duì)象 function newXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) {} } } return xmlreq; } function startRequest(requestedList){ requestType=requestedList; flg=newXMLHttpRequest(); //當(dāng)XMLHttpRequest對(duì)象在請(qǐng)求過(guò)程中間狀態(tài)改變的時(shí)候 //回來(lái)調(diào)用handleStateChange方法 flg.onreadystatechange = handleStateChange; flg.open("GET", "parseXML.xml", true); flg.send(null); } //處理函數(shù) function handleStateChange(){ if(flg.readyState==4){ if(flg.status==200){ if(requestType=="north"){ listNorthStates(); }else if(requestType=="all"){ listAllStates(); }if(requestType=="south"){ listSouthStates(); } } } } //用于顯示NorthStates方法 function listNorthStates(){ var xmlDoc=flg.responseXML; var northNode=xmlDoc.getElementsByTagName("north")[0]; var northStates=northNode.getElementsByTagName("state"); outputList("North States",northStates); } //用于顯示SouthStates方法 function listSouthStates(){ var xmlDoc=flg.responseXML; var SouthNode=xmlDoc.getElementsByTagName("south")[0]; var SouthStates=SouthNode.getElementsByTagName("state"); outputList("South States",SouthStates); } //用于顯示AllStates方法 function listAllStates(){ var xmlDoc=flg.responseXML; var allStates=xmlDoc.getElementsByTagName("state"); outputList("All States in Document", allStates); } //輸出元素并顯示于提示框中 function outputList(title,states){ var out=title; var currState=null; for(var i=0;i<states.length;i++){ currState=states; out=out+"\n-"+currState.childNodes[0].nodeValue; } alert(out); } </script> <body> <form action="#"> <input type="button" value="View All Listed States" onclick="startRequest('all');"/><br> <input type="button" value="View All Listed Northern States" onclick="startRequest('north');"/><br> <input type="button" value="View All Listed Southern States" onclick="startRequest('south');"/> </form> </body> </html>
希望本文所述對(duì)大家的Ajax程序設(shè)計(jì)有所幫助。
- jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法示例
- python xml.etree.ElementTree遍歷xml所有節(jié)點(diǎn)實(shí)例詳解
- php遍歷解析xml字符串的方法
- java遍歷讀取xml文件內(nèi)容
- PHP遍歷XML文檔所有節(jié)點(diǎn)的方法
- python目錄操作之python遍歷文件夾后將結(jié)果存儲(chǔ)為xml
- asp.net Linq To Xml上手Descendants、Elements遍歷節(jié)點(diǎn)
- Dom遍歷XML的一個(gè)例子,結(jié)果為樹狀結(jié)構(gòu)
- Xml中使用foreach遍歷對(duì)象實(shí)現(xiàn)代碼
相關(guān)文章
ajax返回的json內(nèi)容進(jìn)行排序使用sort()方法實(shí)現(xiàn)
關(guān)于ajax返回的json內(nèi)容進(jìn)行排序,主要使用sort()對(duì)數(shù)組的元素進(jìn)行排序,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07Ajax實(shí)現(xiàn)注冊(cè)并選擇頭像后上傳功能
這篇文章主要介紹了Ajax實(shí)現(xiàn)注冊(cè)并選擇頭像后上傳功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02$.ajax傳JSON數(shù)據(jù)到后臺(tái)的注意事項(xiàng)小結(jié)
這篇文章主要介紹了$.ajax傳JSON數(shù)據(jù)到后臺(tái)的注意事項(xiàng),需要的朋友可以參考下2014-05-05關(guān)于JavaScript跨域問(wèn)題及實(shí)時(shí)刷新解決方案
在頁(yè)面顯示其他網(wǎng)站上面的數(shù)據(jù),需要用Ajax,就涉及到跨域問(wèn)題,下面有個(gè)示例,大家可以看看2014-06-06巧用ajax請(qǐng)求服務(wù)器加載數(shù)據(jù)列表時(shí)提示loading的方法
下面小編就為大家?guī)?lái)一篇巧用ajax請(qǐng)求服務(wù)器加載數(shù)據(jù)列表時(shí)提示loading的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04