1

xml ファイルを調べて "marker" 単純なタグを見つけ、その "lat" および "lng" 属性を読み取って gmap に表示したいと考えています。10 分の 1 のスレッドで見つけたものとは反対に、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 を試すのは簡単ではありません。

返信ありがとうございます。

4

1 に答える 1

0

解決しました!理由はわかりませんが、xml ファイルの最初の行が問題の原因でした。削除され、すべてが完璧に機能します。誰かが理由を理解していますか?

于 2013-02-13T23:45:13.670 に答える