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 を試すのは簡単ではありません。
返信ありがとうございます。