Javascript 用于解析xml文件的getElementsByTagName仅在IE8中有效
我想通过一个xml文件找到标记简单标记,并读取它们的lat和lng属性以显示在gmap上。与我在十分之一的线程中发现的相反,GetElementsByTagName只在IE8中工作,而在IE9、Firefox或Chrome中不工作。代码是joomla组件的一部分,所以不是我的,我不想完全更改它Javascript 用于解析xml文件的getElementsByTagName仅在IE8中有效,javascript,internet-explorer-8,xml-parsing,getelementsbytagname,Javascript,Internet Explorer 8,Xml Parsing,Getelementsbytagname,我想通过一个xml文件找到标记简单标记,并读取它们的lat和lng属性以显示在gmap上。与我在十分之一的线程中发现的相反,GetElementsByTagName只在IE8中工作,而在IE9、Firefox或Chrome中不工作。代码是joomla组件的一部分,所以不是我的,我不想完全更改它 var request = GXmlHttp.create(); request.open("GET", $mapfile, true); request.onreadystatechang
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保存了我的代码文件,所以标记文本的编码也是相同的,但不是
我没有javascript方面的经验,使用jQuery对我来说也不容易
谢谢您的回复。已解决!
我不知道为什么,但是xml文件的第一行导致了这个问题。删除和一切工作完美。
有人知道为什么吗 GXmlHttp是什么东西?编辑-哦谷歌地图对不起