Witajcie,
mam nadzieje ze chociaz ktos tutaj mi pomoze. Probowalem dwa dni i nic z tego nie rozumiem. Mam gorne menu ktorego nazwy sa w pliku jak ponizej i podkategorie z elementami menu i podelementami menu.
Niestety pomimo praktyki, petla zagniezdzona FOR zamiast wypisac 1 menu i 1 podelement oraz 1 menu i 2 element itd, robi cos dziwnego i wyswietla raz za duzo a raz zamalo.
Czy moglby mi ktos powiedziec jak mozna czytac 3 nawet zagniezdzone petle? Bo ja chyba poleglem na froncie.
Oto kod XML:
<?xml version="1.0" encoding="UTF-8"?>
<tabulatory>
<tab>Elektronika
<dzial>Telefony
<el>stacjonarne</el>
<el>przenosne</el>
</dzial>
<dzial>Komputery
<el>desktop</el>
<el>netbook</el>
<el>tablety</el>
</dzial>
</tab>
<tab>Muzyka
<dzial>Gitary
<el>elektryczne</el>
<el>akustyczne</el>
</dzial>
<dzial>Pianina
<el>klawiszowe</el>
<el>elektroniczne</el>
<el>zabawki</el>
</dzial>
</tab>
<tab>Zywnosc
<dzial>Napoje
<el>mleko</el>
<el>piwo</el>
</dzial>
<dzial>Czekolady
<el>nadziewane</el>
<el>babelkowe</el>
<el>spozywcze</el>
</dzial>
<dzial>Nabial
<el>chleb</el>
<el>bulka</el>
<el>bagietka</el>
</dzial>
</tab>
</tabulatory>
Oto plik HTML:
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse:collapse;
}
th, td {
padding: 5px;
}
</style>
</head>
<body>
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","lang_en.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var taby=xmlDoc.getElementsByTagName("tabulatory");
var tab=xmlDoc.getElementsByTagName("tab");
var tab_ilosc=tab.length;
var dzial=xmlDoc.getElementsByTagName("dzial");
var dzial_ilosc=dzial.length;
var y = xmlDoc.getElementsByTagName("dzial")[0].childNodes[0].nodeValue;
document.write("Menu: "+tab_ilosc+"<br>");
document.write("Dzialow razem: "+dzial_ilosc+"<br><br>");
document.write("<br>");
p=-1;
for (i=0;i<3;i++) {
for (j=0;j<2;j++) {
p=p+1;
document.write(i+" "+p+"<br>");
document.write(tab[i].childNodes[0].nodeValue);
document.write(dzial[p].childNodes[0].nodeValue+"<br>");
}
}
</script>
</body>
</html>
Efekt jaki widac:
Menu: 3
Dzialow razem: 7
0 0
Elektronika Telefony
0 1
Elektronika Komputery
0 2
Elektronika Gitary
1 3
Muzyka Pianina
1 4
Muzyka Napoje
1 5
Muzyka Czekolady
2 6
Zywnosc Nabial
2 7
Zywnosc