У меня есть ситуация, когда у меня есть файл xml, который имеет разные уровни дочерних узлов, называемых одним и тем же. Вот пример:
<listing>
<post_town>London</post_town>
<price>940000</price>
<longitude> 51.2</longitude>
<latitude>20.000</latitude>
<price_change>
<date>2020-01-30 08:43:36</date>
<direction/>
<percent>0%</percent>
<price>975000</price>
</price_change>
<price_change>
<date>2020-02-20 15:59:01</date>
<direction>down</direction>
<percent>-3.5%</percent>
<price>940000</price>
</price_change>
<price_change_summary>
<direction>down</direction>
<percent>-3.5%</percent>
</listing>
У меня есть скрипт, который не работает, я хочу, чтобы он игнорировал дочерние узлы "price" в элементах xml. Этот скрипт выглядит следующим образом: «
<html>
<body>
<p id="demo"></p>
<script>
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "http://test.co.uk/xmltest.xml", true);
xhttp.send();
function myFunction(xml) {
var x, y, z, i, txt, xmlDoc;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("latitude");
y = xmlDoc.getElementsByTagName("longitude");
z = xmlDoc.getElementsByTagName("price");
for (i = 0; i < x.length; i++) {
txt += "{location:" + x[i].childNodes[0].nodeValue + ", " + y[i].childNodes[0].nodeValue +", weight:" + z[i].childNodes[0].nodeValue + "},<br>";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>
В качестве примера из вышеприведенного должно быть« {location: 51.2, 20.000, weight: 940000},
»- игнорирование элементов в элементе и цикл для множества различных списков, чтобы вытащить ту же информацию, что и выше.
Конечная цель состоит в том, чтобы просеять это xml и распечатать широту, долготу и первоначальную цену для каждого списка, и я не могу показаться чтобы увидеть, что я делаю не так?