无法从Javascript中正确读取XML

时间:2016-05-24 12:14:39

标签: javascript xml

我正在尝试使用Javascript读取XML文件,这是在学校的作业,所以我不能使用jQuery它必须是Javascript。基本上我可以读取一个值但不能读取其他值

这是我的JS,可以读取XML值。它将读取startLng但它给我startLat未定义。但是,如果我检查XML文件,则startLat未定义。我不知道这里的问题是什么。

我要做的是从XML文件中获取LatitudeDegrees和LongitudeDegrees。但它只给了我LongitudeDegrees,并说LatitudeDegrees是未定义的。我在这做错了什么?

function loadXMLDoc() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      getLatLang(xmlhttp);
    }
  };
  xmlhttp.open("GET", "G1.TCX", true);
  xmlhttp.send();
}

    function getLatLang(xml)
{
      var xmlDoc = xml.responseXML;
      var x = xmlDoc.getElementsByTagName("Trackpoint");
      startLat = x[0].getElementsByTagName("Position")[0].getElementsByTagName("LatitudeDegrees")[0].childNodes[0].nodeValue;
      startLng = x[0].getElementsByTagName("Position")[0].getElementsByTagName("LongitudeDegrees")[0].childNodes[0].nodeValue;  

}

这是XML文件

      <Trackpoint>
    <Time>2008-10-28T15:58:22Z</Time>
    <Position>
      <LatitudeDegrees>59.4111992</LatitudeDegrees>
      <LongitudeDegrees>13.5304104</LongitudeDegrees>
    </Position>
    <AltitudeMeters>85.6945801</AltitudeMeters>
    <DistanceMeters>0.2149343</DistanceMeters>
    <HeartRateBpm xsi:type="HeartRateInBeatsPerMinute_t">
      <Value>116</Value>
    </HeartRateBpm>
    <SensorState>Absent</SensorState>
    <Extensions>
      <TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2" CadenceSensor="Footpod"/>
    </Extensions>
  </Trackpoint>

1 个答案:

答案 0 :(得分:0)

这已经解决了。

问题是我没有文档加载。