Elemente in XML datei bis zu bestimmtem Inhalt zählen.
mist
- javascript
0 Jeena Paradies0 mist
0 ThomasM
Hallo.
Ich stecke gerade an einem Problem fest an dem ich leider trotz ausführlicher Recherche nicht weiterkomme.
Anbei ein Beisp. der XML um die es geht:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
<titel>Städte</titel>
<eintrag La="CH">
<stichwort>Genf</stichwort>
<stichwort>Zuerich</stichwort>
</eintrag>
<eintrag La="D">
<stichwort>Koeln</stichwort>
<stichwort>Bonn</stichwort>
</eintrag>
<eintrag La="F">
<stichwort>Paris</stichwort>
<stichwort>Marseile</stichwort>
</eintrag>
usw. ...
</verzeichnis>
Ich würde nun gerne per JS herausfinden, das wievielte Element "stichwort" z.B. der Eintrag "Koeln" ist; als Antwort also gerne "3" erhalten.
Nach etlichen Fehlversuchen und langer Recherche weiß ich leider immer noch nicht wie man das am besten angeht.
Ich hoffe ich konnte mein Problem verständlich machen und hoffe auch das mir jemand helfen kann.
Vielen Dank schonmal...
Gruß, Michael
Hallo,
Hier ein sehr Naiver Ansatz aber vielleicht hilft er dir etwas weiter:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4) {
handleXML(xmlhttp.responseXML);
}
};
xmlhttp.open("GET","xml.xml",true);
xmlhttp.send(null);
function handleXML(xmlDoc) {
var find = "Koeln";
var ss = xmlDoc.getElementsByTagName("stichwort");
for(var i=0; i<ss.length; i++) {
if (ss[i].childNodes[0].nodeValue == find) {
console.log("Found "+ find + " at position: " + (i + 1));
}
}
}
Jeena
Besten Dank für die Hilfe, der Ansatz hat super funktioniert, ist bereits eingearbeitet und ich bin somit einen großen Schritt weiter. :-)
Gruß, Michael
Hallo mist,
Ich würde nun gerne per JS herausfinden, das wievielte Element "stichwort" z.B. der Eintrag "Koeln" ist; als Antwort also gerne "3" erhalten.
Wenn XPath verwendet werden kann:
count(//stichwort[.='Koeln']/preceding::stichwort) + 1
Grüße,
Thomas