0
私はJavascriptでXMLファイルを読み込もうとしています。それは学校での割り当てのため、jQueryを使用することはできません.Javascriptでなければなりません。基本的に私は1つの値を読むことができますが、他のものは読み取ることができませんキャントが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;
}
これは、これが解決されている
<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>
問題を再現できるように、最小限の完全なコードスニペットを挿入することを検討してください。 'xsi:type =" HeartRateInBeatsPerMinute_t "属性は接頭辞' xsi'を使用しますが、宣言していないため、投稿したXMLスニペットは完全ではありません。 XMLを修正してhttps://jsfiddle.net/jnq0qg3u/1/で最小限のスニペットを作成しようとすると、Firefox、Chrome、Edgeで必要な出力が得られ、緯度にアクセスすることはできません。 –
XMLファイルが1000行以上あるので、ここに投稿すると役に立たないテキストもたくさんありますXMLがファイルからロードされていると忘れてしまった – Mammuth
まあ、問題を再現できるようにすることを試みます問題の原因を自分のものと判断したり、それを特定することができます。ファイルからロードする場合、XMLが整形式であれば、文字列を解析するかファイルを解析するかは関係ありませんが、ファイルを解析することはできますがコードは要素を見つけられないので、その問題を実証する最小限の完全なサンプル。 –