У меня есть XML-файл, который представляет собой структурированное меню ресторана, и мне нужно отобразить меню на HTML-странице. Я думал, что правильно сделал комплимент xml, но не сделал этого. Моя страница не работает правильно, и я не могу понять, почему.
JS код:
function loadmenu() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction2(this);
}
};
xhttp.open("GET", "menu.xml", true);
xhttp.send();
}
function myFunction2(xml) {
var i, x;
var xmlDoc = xml.responseXML;
for (x = 0; x < 2; x++;) {
if (x == 0) {
var table = "<table><tr><th>Breakfast</th> <th>price</th></tr>";
var y = xmlDoc.getElementsByTagName("BREAKFAST");
console.log(y[0].length);
for (i = 0; i < y[0].getElementsByTagName("NAME").length; i++) {
table += "<tr><td>" + y[0].getElementsByTagName("NAME")[i].childNodes[0].nodeValue + "</td> </tr>" +
"$" + y[0].getElementsByTagName("PRICE")[i].childNodes[0].nodeValue + "</td> </tr>";
}
} else if (x == 1) {
var table = "<table><tr><th>Breakfast</th> <th>price</th></tr>";
var y = xmlDoc.getElementsByTagName("BRUNCH");
console.log(y[0].length);
for (i = 0; i < y[0].getElementsByTagName("NAME").length; i++) {
table += "<tr><td>" + y[0].getElementsByTagName("NAME")[i].childNodes[0].nodeValue + "</td> </tr>" +
"$" + y[0].getElementsByTagName("PRICE")[i].childNodes[0].nodeValue + "</td> </tr>";
}
}
}
}
Вот XML:
<?xml version="1.0" encoding="UTF-8"?>
<MENU>
<BREAKFAST>
<APPETIZER>
<NAME>Fruit Bowl</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<SALAD>
<NAME>Caeser SALAD</NAME>
<PRICE>3.90</PRICE>
</SALAD>
<SOUP>
<NAME>Chicken Noodle</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<ANTREE>
<NAME>Omelet</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Scrambled Eggs</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<DESSERT>
<NAME>Apple Pie</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
</BREAKFAST>
<BRUNCH>
<APPETIZER>
<NAME>Fruit Bowl</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<APPETIZER>
<NAME>EggPlant Frits</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<SALAD>
<NAME>House Salad</NAME>
<PRICE>3.90</PRICE>
</SALAD>
<SOUP>
<NAME>Chicken Noodle</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<ANTREE>
<NAME>French Toast</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Omelet</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Scrambled Eggs</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Hamburg</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<DESSERT>
<NAME>Apple Pie</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
</BRUNCH>
<LUNCH>
<APPETIZER>
<NAME>Calamari</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<SALAD>
Caeser Salad
<PRICE>3.90</PRICE>
</SALAD>
<SALAD>
<NAME>Arugula Salad</NAME>
<PRICE>3.90</PRICE>
</SALAD>
<SOUP>
<NAME>Chicken Noodle</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<SOUP>
<NAME>Italian Wedding Soup</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<ANTREE>
<NAME>Steak</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Hamburg</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Angel Hair Pasta</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<DESSERT>
<NAME>Tiramisu</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
</LUNCH>
<DINNER>
<APPETIZER>
<NAME>Calamari</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<APPETIZER>
<NAME>EggPlant Frits</NAME>
<PRICE>10.90</PRICE>
</APPETIZER>
<SALAD>
House Salad
<PRICE>3.90</PRICE>
</SALAD>
<SALAD>
<NAME>Caeser Salad</NAME>
<PRICE>3.90</PRICE>
</SALAD>
<SOUP>
Chicken Noodle
<PRICE>5.90</PRICE>
</SOUP>
<SOUP>
<NAME>Italian Wedding Soup</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<SOUP>
<NAME>Roasted Patato</NAME>
<PRICE>5.90</PRICE>
</SOUP>
<ANTREE>
<NAME>Steak</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Hamburg</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Angel Hair Pasta</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<ANTREE>
<NAME>Roasted Duck</NAME>
<PRICE>20.90</PRICE>
</ANTREE>
<DESSERT>
<NAME>Apple Pie</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
<DESSERT>
<NAME>Tiramisu</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
<DESSERT>
<NAME>Creme Brule</NAME>
<PRICE>7.90</PRICE>
</DESSERT>
</DINNER>
<DRINKS>
<BEER>
<NAME>Bud Weiser</NAME>
<PRICE>5.90</PRICE>
</BEER>
<BEER>
<NAME>Hefe Weissbier</NAME>
<PRICE>6.90</PRICE>
</BEER>
<WINE>
<NAME>Cabernet Sauvignon</NAME>
<FROM>Napa Valley</FROM>
<PRICE>15.90</PRICE>
</WINE>
<WINE>
<NAME>Margaux</NAME>
<PRICE>50.90</PRICE>
</WINE>
<WINE>
<NAME>Pinot Noir</NAME>
<FROM>Napa Valley</FROM>
<PRICE>12.90</PRICE>
</WINE>
<WINE>
<NAME>Chianti</NAME>
<PRICE>10.90</PRICE>
</WINE>
<COFFEE>
<NAME>Star Bucks</NAME>
<PRICE>3.90</PRICE>
</COFFEE>
<SODA>
Coca Cola
<PRICE>3.90</PRICE>
</SODA>
<SODA>
Sprite
<PRICE>3.90</PRICE>
</SODA>
</DRINKS>
</MENU>
Я собираюсь реализовать это и для остальных значений, но сейчас я в растерянности