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

标签 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.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 文件的第一行导致了问题。删除后一切都很完美。 有人明白为什么吗?

关于javascript - 用于解析 xml 文件的 getElementsByTagName 仅适用于 IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14803639/

相关文章:

Java Stax Iterator API方法实现

javascript - 匿名函数并不总是有返回值

javascript - 仅当圆圈具有关联注释时才在折线图中附加圆圈

Javascript 电话验证功能在 IE8 中不起作用

javascript - 资源管理器使用 jquery 动画很慢。其他浏览器运行良好

javascript - 在 IE8 中弹出 JS 的无效参数

android - 根据属性选择元素-缺少一些元素

python - ElementTree : Element. remove() 跳跃迭代

javascript - 如何在 React 中结合 emojione 和 markdown?

javascript - celltemplates 的 ui 网格性能问题