leila_safa
دوشنبه 28 مرداد 1387, 14:28 عصر
سلام.
میشه به من بگین که مشکل این کد کجاست و چرا جواب درست رو نمی ده؟
دکمه اول که باید لیست تمامی state های موجود در فایل XML رو نمایش بده، اما چیزی نمایش نمی ده.
دکمه دوم هم که باید لیست همه state ها در تگ north را نمایش بده اما error می ده از خط 40.
ممنون می شم اگه مشکلش رو بهم بگین.
کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Parsing XML Responses with the W3C DOM</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", "parseXML.xml", true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
//if(xmlHttp.status == 200) {
if(requestType == "north") {
listNorthStates();
}
else if(requestType == "all") {
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;
alert(states.length);
for(var i = 0; i < states.length; i++) {
currentState = states[i];
out = out + "\n- " + currentState.childNodes[0].nodeValue;
}
alert(out);
}
</script>
</head>
<body>
<h1>Process XML Document of U.S. States</h1>
<br/><br/>
<form action="#">
<input type="button" value="View All Listed States"
onclick="startRequest('all');"/>
<br/><br/>
<input type="button" value="View All Listed Northern States" onclick="startRequest('north');"/>
</form>
</body>
</html>
اینم محتوای فایل 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>
میشه به من بگین که مشکل این کد کجاست و چرا جواب درست رو نمی ده؟
دکمه اول که باید لیست تمامی state های موجود در فایل XML رو نمایش بده، اما چیزی نمایش نمی ده.
دکمه دوم هم که باید لیست همه state ها در تگ north را نمایش بده اما error می ده از خط 40.
ممنون می شم اگه مشکلش رو بهم بگین.
کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Parsing XML Responses with the W3C DOM</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", "parseXML.xml", true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
//if(xmlHttp.status == 200) {
if(requestType == "north") {
listNorthStates();
}
else if(requestType == "all") {
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;
alert(states.length);
for(var i = 0; i < states.length; i++) {
currentState = states[i];
out = out + "\n- " + currentState.childNodes[0].nodeValue;
}
alert(out);
}
</script>
</head>
<body>
<h1>Process XML Document of U.S. States</h1>
<br/><br/>
<form action="#">
<input type="button" value="View All Listed States"
onclick="startRequest('all');"/>
<br/><br/>
<input type="button" value="View All Listed Northern States" onclick="startRequest('north');"/>
</form>
</body>
</html>
اینم محتوای فایل 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>