我有一個javascript函數,它使得我的服務器上的一個php文件生成一個XML文件(請參閱下面的輸出)的http_request。當XML文件返回時,相同的javascript函數解析XML(這是我的問題所在)並將它傳遞給其他函數;其中大部分處理完成。在Javascript中解析XML的問題
到目前爲止,我一直無法解析我的XML文檔,我無法弄清楚爲什麼。
XML
<Results><!--Root-->
<Result_Set>
<State>State</State>
<Cities>
<City>City 1</City>
<City selected="true">City 2</City>
...ETC...
</Cities>
<Zipcodes>
<Zipcode selected="true">Zipcode 1</Zipcode
<Zipcode>Zipcode 2</Zipcode>
...ETC...
</Zipcodes>
</Result_Set>
</Results>
的Javascript
function GetZipInfo(zipcode){
var xmlhttp;
var x,resultSet,state,cities,zipcodes
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
resultSet=xmlhttp.responseXML.documentElement.getElementsByTagName("Result_Set") //Function Crashes Here
for(x=0;x<resultSet.length;x++){
state=resultSet[x].getElementsByTagName("State")[0].nodeValue;
cities=resultSet[x].getElementsByTagName("Cities");
zipcodes=resultSet[x].getElementsByTagName("Zipcodes");
selectState(state)
xmlDropdown(cities, "City", "Cities")
xmlDropdown(zipcodes, "Zipcode", "Zipcodes")
}
}
}
xmlhttp.open("GET","GetZipInfo.php?Zipcode="+zipcode,true);
xmlhttp.send();
}
我從來沒有解析之前任何語言XML文檔,所以我認爲這是肯定地說,我完全失去了作爲出了什麼問題。
預先感謝您!
編輯:事實證明,我的回答是responseText的,而不是responseXML的回來爲
responseText的
我使用PHP創建XML頁面:
header("Content-Type: text/plain");
//Create the DOM
echo $xmlDoc->saveXML()
仍然不確定它爲什麼不以XML形式返回。它可以與echo $ xmlDoc-> saveXML()?
編輯:我同意幾個意見,我的問題是與我的頭在XML文件中。 我在代碼中添加了「alert(xmlhttp.responseText)」這一行。其中顯示:
<?xml version="1.0"?>
<!--The Contents of my XML file-->
是否需要設置編碼類型才能正常工作。如果是這樣,我怎樣才能修改我的PHP代碼(見上)以插入該編碼?
錯誤? XML看起來缺少頂級行<?xml version =「1.0」encoding =「UTF-8」?>' – epascarello 2012-07-17 18:55:39
您能調試(檢查/記錄/警報)xmlhttp.responseXML並告訴我們結果嗎? – Bergi 2012-07-17 19:00:51
你得到了什麼確切的錯誤信息? – Bergi 2012-07-17 19:01:18