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