2012-10-11 87 views
-1

感謝您閱讀我的問題。我使用Google Map API來解析XML。 XML數據是由MFC生成的,然後我將它發送到HTML,然後我將它發送到HTML,然後我使用JavaScript來解析此XML字符串並做一些工作,但是當我單擊將解析XML字符串的按鈕時,出現錯誤發生「無法從的getElementsByTagName得到的數據:它是null或undefined使用getElementsByTagName無法獲取數據

但JS代碼是example code of Google Map API,所以我不知道如何解決這個問題,請大家幫我

Additinal信息:!我使用MFC中的WebBrowser來加載一個HTML頁面,所有的代碼都在這裏。GXml是一個Google Map API的命名空間,它有這個方法。我想如果MFC WebBrowser不支持getElementsByTagName()方法?那麼,如何解決它?

function loadXMLData() 
{ 
    var strXML = document.getElementById('XMLfromMFC'); 
    var xmlDoc = GXml.parse(strXML); 

    var polylines = xmlDoc.documentElement.getElementsByTagName("road"); 

    for (var i = 0; i < polylines.length; i++) { 
     addPolylines(polylines[i]); 
     } 
} 

function addPolylines(node) 
{ 
    var points = node.getElementsByTagName("point"); 
    var pts = []; 

    for (var i = 0; i < points.length; i++) 
    { 
    pts[i] = new  GLatLng(parseFloat(points[i].getAttribute("lat")),parseFloat(points[i].getAttribute("lon"))); 
    } 
      for (var i = 0; i < points.length; i++) { 
       pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")), parseFloat(points[i].getAttribute("lon"))); 
      } 

      var polyline = new GPolyline(pts); 
      map.addOverlay(polyline); 
      return polyline; 
     } 

的XML數據如下圖所示:

<?xml version="1.0" encoding="utf-8"?> 
<AllRoadsData> 
<road> 
<id>1</id> 
<roadName>first</roadName> 
<roadWidth>2</roadWidth> 
<pointsNum>9</pointsNum> 
<maxSpeed>80</maxSpeed> 
<point lon="42.361081" lat="-71.070213"/> 
<point lon="42.361128" lat="-71.068625"/> 
<point lon="42.361192" lat="-71.066844"/> 
</road> 
<road> 
<id>2</id> 
<roadName>second</roadName> 
<roadWidth>4</roadWidth> 
<pointsNum>5</pointsNum> 
<maxSpeed>30</maxSpeed> 
<point lon="42.357291" lat="-71.065063"/> 
<point lon="42.358290" lat="-71.065085"/> 
</road> 
</AllRoadsData> 
+0

有人幫我!!!!!!!!!請 – Rayborn1105

回答

0

您正在使用過時的谷歌地圖API第2版,不推薦新的發展,並可能會停止爲2013年5你早工作應該轉移到v3 API(不包含任何此功能)。

你應該看看你的JavaScript錯誤,我懷疑xmlDoc.documentElement爲null。

+0

謝謝,是的,你是對的,MFC錯誤報告是getElementsByTagName()爲null,所以我認爲xmlDoc沒有成功獲取DOM。至於API版本,因爲我不知道如何使用V3版API,所以我現在必須使用V2。我使用Firebug來加載這個頁面,並直接給出值字符串。但它仍然沒有工作,沒有錯!我不知道爲什麼,請幫助我....... – Rayborn1105

+0

您是否驗證了您的xml有效?我不值得花時間支持v2;你應該弄清楚現在如何使用v3而不是以後的版本。對於使用v2,最好的參考是[Mike Williams的教程](http://econym.org.uk/gmap/)。或者你可以看看http://www.geocodezip.com,那裏有很多v2和v3的例子。 – geocodezip