getElementsByTagName для разбора xml файла работает только в IE8

Я хочу просмотреть XML-файл, чтобы найти простые теги "marker" и прочитать их атрибуты "lat" и "lng" для отображения на карте. В противоположность тому, что я нашел в десятых потоках, 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.

Спасибо за любой ответ.

1 ответ

РЕШИТЬ! Я не знаю почему, но первая строка файла XML вызывала проблему. Убрал и все работает отлично. Кто-нибудь понимает почему?

Другие вопросы по тегам