2016-05-24 12 views
0

Ich versuche, eine XML-Datei mit Javascript zu lesen, es ist für eine Aufgabe in der Schule, so kann ich jQuery verwenden, es muss Javascript sein. Grundsätzlich kann ich einen Wert lesen, aber nicht die anderenKann richtig lesen XML von Javascript

Dies ist meine JS, die für das Lesen der XML-Wert verantwortlich ist. Es wird startLng lesen, aber es gibt mir startLat ist undefiniert. Aber wenn ich die XML-Datei überprüfe, ist die StartLat nicht undefiniert. Ich kann nicht sehen, was das Problem hier ist.

Was ich versuche zu tun, ist die LatitudeDegrees und LongitudeDegrees aus der XML-Datei zu bekommen. Aber es gibt mir nur die LongitudeDegrees und sagt, dass LatitudeDegrees nicht definiert ist. Was mache ich hier falsch?

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; 

} 

Dies ist die XML-Datei

 <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> 
+0

Ziehen Sie in Betracht, minimale, aber vollständige Codeausschnitte einzufügen, damit wir das Problem reproduzieren können. Das von Ihnen gepostete XML-Snippet ist nicht vollständig, da das Attribut "xsi: type =" HeartRateInBeatsPerMinute_t "' das Präfix 'xsi' verwendet, es jedoch nicht deklariert. Wenn ich das XML korrigiere und versuche, ein minimales Snippet unter https://jsfiddle.net/jnq0qg3u/1/ zu erstellen, dann bekomme ich die gewünschte Ausgabe mit Firefox, Chrome und Edge, es gibt keinen Fehler beim Zugriff auf den Breitengrad. –

+0

Die Sache ist, die XML-Datei ist über 1000 Zeilen, so würde es hier viele sinnlose Text wäre auch vergessen zu sagen, dass das XML aus einer Datei geladen wird – Mammuth

+0

Nun, versuchen Sie Dinge zu reduzieren, um uns das Problem zu reproduzieren Sie finden die Ursache des Problems auf diese Weise oder wir können es identifizieren. Wie beim Laden von einer Datei, wenn das XML wohlgeformt ist, dann ist es egal, ob Sie eine Zeichenkette oder eine Datei analysieren, Sie sagen, Sie können die Datei analysieren, aber Ihr Code findet kein Element minimale aber vollständige Probe, die dieses Problem demonstriert. –

Antwort

0

Diese gelöst wurde.

Das Problem war ich hatte kein Dokument geladen.