Heim > Web-Frontend > js-Tutorial > Hauptteil

Ajax-Methode zum Durchlaufen eines XML-Dokuments

亚连
Freigeben: 2018-05-25 10:34:59
Original
1697 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zum Durchlaufen von XML-Dokumenten mit Ajax vor. Er analysiert die Implementierungstechniken für das Durchlaufen von XML-Dokumenten mit Ajax >Die Beispiele in diesem Artikel beschreiben die Ajax-Methode zum Durchlaufen von XML-Dokumenten. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Das XMLHttpRequest-Objekt stellt zwei Attribute bereit, die für den Zugriff auf die Serverantwort verwendet werden können. Das erste Attribut, „responseText“, stellt die Antwort als Zeichenfolge bereit, und das zweite Attribut, „responseXML“, stellt die Antwort als XML-Objekt bereit. Einige einfache Anwendungsfälle eignen sich zum Erhalten der Antwort durch einfachen Text, z. B. die Anzeige der Antwort in einem Warnfeld, oder die Antwort ist nur ein Wort, das Erfolg oder Misserfolg angibt

Das Beispiel in der vorherigen vom XMLHttpRequest-Objekt Der Server antwortet und erhält die Antwort als Text mithilfe der ResponseText-Eigenschaft des XMLHttpRequest-Objekts.

Dieses Mal verwenden wir das ResponseXML-Attribut des XMLHttpRequest-Objekts, um das Ergebnis als XML-Dokument zu erhalten. Auf diese Weise können wir die W3C-DOM-Methode verwenden, um das XML-Dokument zu durchlaufen. (Im vorherigen Artikel ging es mehr oder weniger um DOM, daher werde ich es hier nicht wiederholen.)

OK, schauen wir uns das Beispiel an.

Zuallererst gibt es ein Stück XML Dokumentcode (parseXML.xml) wie folgt:

parseXML.xml lautet wie folgt:

<?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>
Nach dem Login kopieren


MyJsp. jsp lautet wie folgt:

<%@ 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 &#39;MyJsp.jsp&#39; 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对象
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();
//当XMLHttpRequest对象在请求过程中间状态改变的时候
//回来调用handleStateChange方法
flg.onreadystatechange = handleStateChange;
flg.open("GET", "parseXML.xml", true);
flg.send(null);
}
//处理函数
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(&#39;all&#39;);"/><br>
<input type="button" value="View All Listed Northern States"
  onclick="startRequest(&#39;north&#39;);"/><br>
<input type="button" value="View All Listed Southern States"
  onclick="startRequest(&#39;south&#39;);"/>
</form>
</body>
</html>
Nach dem Login kopieren

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Ajax-Upload-Methode zur Implementierung der JS-Verarbeitung basierend auf serverseitigen Rückgabedaten


Doppelschicht Ajax-Einbettung Satz von (kann mehrschichtigen) Anwendungsbeispielen


Ajax-Implementierung des Popup-Funktionscodes für die Stadtauswahl ohne Aktualisierung


Das obige ist der detaillierte Inhalt vonAjax-Methode zum Durchlaufen eines XML-Dokuments. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!