用于解析xml文件的getElementsByTagName仅适用于IE8

getElementsByTagName for parsing xml file works only in IE8

本文关键字:getElementsByTagName 适用于 IE8 文件 xml 用于      更新时间:2023-09-26

我想浏览一个xml文件,找到"marker"简单标记,并读取它们的"lat"answers"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为零。更奇怪的是,当我的网站在另一台服务器上时,同样的代码也能正常工作。我应该在…上找一些相关的东西吗。。。(?)服务器设置?

我在没有.docentElement的情况下尝试过,没有区别。我甚至把我的代码文件保存在utf-8中,所以"标记"文本也是相同的编码,但没有

我对javascript没有经验,尝试jQuery对我来说并不容易。

谢谢你的回复。

已解决!我不知道为什么,但是xml文件的第一行导致了这个问题。移除后,一切都很完美。有人明白为什么吗?

相关文章:
  • 没有找到相关文章