我想浏览一个xml文件来查找“marker”简单标签并阅读它们的“lat”和“lng”属性以显示在gmap上。与我在十分之一线程中找到的相反,GetElementsByTagName仅在IE8中工作,而不在IE9,Firefox或Chrome中工作。代码是joomla组件的一部分(所以不是我的),我不想完全改变它。
var request = GXmlHttp.create();
request.open("GET", $mapfile, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = GXml.parse(request.responseText);
var markers = xmlDoc.documentElement.getElementsByTagName("marker");
alert(markers.length);
for (var i = 0; i < markers.length; i++) {
var lat = parseFloat(markers[i].getAttribute("lat"));
var lng = parseFloat(markers[i].getAttribute("lng"));
}
}
}
xml中没有任何复杂的内容
<?xml version="1.0" encoding="utf-8" ?>
<markers>
<marker lat="53.0" lng="48.0"/>
<marker lat="55.0" lng="32.0"/>
<marker lat="42.0" lng="21.0"/>
<marker lat="-3.0" lng="-79.0"/>
<marker lat="10.0" lng="-66.0"/>
</markers>
虽然我的代码正确读取了xml(request.responseText包含xml文本),但markers.length为零。当我的网站在另一台服务器上时,相同的代码工作正常更奇怪。我应该看一下......(?)服务器设置的相关内容吗?
我试过没有.documentElement,没有区别。我甚至将我的代码文件保存在utf-8中,因此“marker”文本也采用相同的编码,但没有。
我对javascript没有经验,我尝试使用jQuery并不容易。
感谢您的回复。
答案 0 :(得分:0)
解决了! 我不知道为什么,但xml文件的第一行导致了问题。删除,一切都很完美。 有谁理解为什么?