BrainLight
Mitglied
Hallo liebe Community!
Ich habe mich gestern den ganzen Tag damit beschäftigt um herauszufinden, warum ich meine ChildNodes nicht richtig auslesen kann und hoffe, dass Ihr mir diesbezüglich weiterhelfen könnt.
Es handelt sich nicht um die Frage, wie man XML ausliest, eher vielmehr - Warum JavaScript solch verückten Sachen Countet
Ich zeige euch am besten einfach die Codes:
XML-Datei:
test.html:
Wieso geben mir die document.write-Zeilen solche verrückten Daten? Und wieso kann ich nicht einfach
schreiben?
Vielleicht habe ich auch einfach nur ein kleines Logikproblem da reingestellt.
Es wäre schön, wenn Ihr mir auf die Sprünge helfen könntet.
Danke im Vorraus und MfG
BL
Ich habe mich gestern den ganzen Tag damit beschäftigt um herauszufinden, warum ich meine ChildNodes nicht richtig auslesen kann und hoffe, dass Ihr mir diesbezüglich weiterhelfen könnt.
Es handelt sich nicht um die Frage, wie man XML ausliest, eher vielmehr - Warum JavaScript solch verückten Sachen Countet
Ich zeige euch am besten einfach die Codes:
XML-Datei:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<folder>
<category name="drei">
</category>
<category name="eins">
<file name="bilder/eins/008_4A.JPG" />
<file name="bilder/eins/017_14.JPG" />
</category>
<category name="vier">
</category>
<category name="zwei">
<file name="bilder/zwei/002_12A.JPG" />
<file name="bilder/zwei/004_10.JPG" />
<file name="bilder/zwei/007_34.JPG" />
<file name="bilder/zwei/015_5A.JPG" />
<file name="bilder/zwei/021_9A.JPG" />
</category>
</folder>
test.html:
HTML:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>xml auslesen</title>
<script type="text/javascript">
<!--
function newRequest()
{
try {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
return new ActiveXObject("MSXML2.XMLHTTP");
}
} catch (e) {
return false;
}
}
function getPictures() {
var req;
if (req = newRequest()) {
req.open("GET", "bilder.xml", false);
req.send("");
var xml = req.responseXML;
for(i=0; i < xml.getElementsByTagName("category").length ; i++)
{
var categories = xml.getElementsByTagName("category");
document.write("<b>Kategorie: " + categories[i].getAttribute("name") + "</b><br>");
for (u = 0; u < xml.getElementsByTagName("category")[i].childNodes.length; u++)
{
var itemCount = xml.getElementsByTagName("category")[i].childNodes.length;
var files = categories[i].getElementsByTagName("file");
//document.write(categories[i].childNodes[u].getAttribute("name") +"<br>");
//document.write(categories[i].childNodes[u] +"<br>");
document.write(files[u] +"<br>");
document.write("Item-Count: " + itemCount + "<br>---<br>");
}
}
}
}
// -->
</script>
</head>
<body onload="getPictures()">
</body> </html>
Wieso geben mir die document.write-Zeilen solche verrückten Daten? Und wieso kann ich nicht einfach
Code:
document.write(categories[i].childNodes[u].getAttribute("name"));
Vielleicht habe ich auch einfach nur ein kleines Logikproblem da reingestellt.
Es wäre schön, wenn Ihr mir auf die Sprünge helfen könntet.
Danke im Vorraus und MfG
BL