我有一个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