1

javascriptを学んでいて、それほど多くはありません。コードを使用して、xmlファイルからロードする検索可能な場所でgoogle mapv3apiを作成しようとしています。

多くの事実で問題が発生しましたが、これがこれです:xmlファイルのデータにアクセスできません。例を使用して、別のコードを読み取って試して調整しようとしましたが、成功しませんでした。

私のxmlファイルを使用してデータにアクセスしていません。これは以下のjsコードを使用した私のxml形式です。

    <markers style="MEDIUM">
       <marker>
         <title>McDonalds</title>
         <lat>55.5452</lat>
         <lng>34.3755</lng>
         <markerId>0</markerId>
         <countryCode>GB</countryCode>
         <address>Somewhere in London</address>
         <description>Get a free toy with every happy meal!</description>
       </marker>
    </markers>

これは私のhtmlファイルからのJSです。

downloadUrl("london.xml", function(doc) {
            var xmlDoc = xmlParse(doc);
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");

            for (var i = 0; i < markers.length; i++) {
             // obtain the attribues of each marker
              var lat = parseFloat(markers[i].getElementsByTagName("lat"));
              var lng = parseFloat(markers[i].getElementsByTagName("lng"));
              var point = new google.maps.LatLng(lat,lng);

              var description = markers[i].getElementsByTagName("description");
              var title = markers[i].getElementsByTagName("title");
          alert(title);
              // create the marker
              var marker = createMarker(point,title,description);
            }
        alert(i);

ノードをリンクするなど、非常に単純なことだと思いますが、理解できず、助けやアドバイスがあれば、正気を保つことができると思いました。ありがとうございます。

4

1 に答える 1

1

さて、すべての問題がどこにあるかを明確に言うのは難しいです...しかし、私が見ることができる最初の問題は、あなたがgetElementsByTagNameからしようとしているということですが、あなたはdocumentElementそれをから取る必要がありますxmlDoc

var markers = xmlDoc.getElementsByTagName("marker");

NodeList次に、オブジェクトをに変換しようとしていますfloat。次のようにやり直す必要があります。

var lat = parseFloat(markers[i].getElementsByTagName("lat")[0].textContent);
var lng = parseFloat(markers[i].getElementsByTagName("lng")[0].textContent);

次に、私は信じdescriptionて、対応する名前で最初のノードのにtitle格納されます。textContentそれで、

var description = markers[i].getElementsByTagName("description")[0].textContent;
var title = markers[i].getElementsByTagName("title")[0].textContent;

<?xml ...?>また、XMLファイルの正しい形式(ヘッダーなどを含む)を確認することを忘れないでください。

于 2012-04-28T00:42:22.377 に答える