我有一个 javascript 函数,它向我的服务器上的一个 php 文件发出 http_request,该文件生成一个 XML 文件(见下面的输出)。当返回 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的形式返回的
响应文本
我正在使用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 代码(见上文)以插入该编码?