Ich mal wieder.
Aber dieses Mal Vorbereitung für ein Uniprojekt und daher etwas, womit sich hier einige sicher sogar sehr gut auskennen: JavaScript.
Folgendes. Ich habe ein XML Dokument, dass so aussieht:
<?xml version="1.0" encoding="UTF-8"?><warehouse> <storage> <name>Area A</name> <length>20</length> <width>40</width> </storage> <ware> <item> <num>1</num> <loc_x>190</loc_x> <loc_y>5</loc_y> <loc_z>70</loc_z> <width>3</width> <height>3</height> <depth>2</depth> </item> <item> <num>2</num> <loc_x>35</loc_x> <loc_y>5</loc_y> <loc_z>10</loc_z> <width>1</width> <height>1</height> <depth>1</depth> </item> </ware></warehouse>
Nur eigentlich nicht mit nur zwei Einträgen, sondern 500.
Nun möchte ich mit JavaScript all die Einträge, bei denen die loc_x 35 ist ausgeben lassen und zwar als eine Liste der "num" einträge.
Und ich habe keine Ahnung, wie ich das machen soll.
Ich habe mal angefangen simple Grundlagen, wie "schau dir erst einmal alle "item"s an" zu versuchen anhang des XML DOM Tutorials von W3 zu erwarbeiten... Aber ich weiß schon, warum ich seit Jahren eine Abneigung gegen JS (und Java) habe ^^"
So sieht bisher mein Code aus. Bitte nicht lachen. Ich schäme mich auch so schon genug :(
Mir wird als "length" 0 ausgegeben.
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "table.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
//document.getElementById("demo").innerHTML
var x = xmlDoc.getElementsByTagName("item");
console.log("Ware: " + x)
//var y = x.getElementsByTagName("item");
console.log("Length: " + x.length)
}
</script>
</body>
</html>
Alles anzeigen