TEOORIA
XML – Extensible Markup Language
PRAAKTIKA
Loome faili games.xml
<?xml version="1.0" encoding="UTF-8"?>
<gamelist>
<game>
<title lang="en">Hearthstone</title>
<price>Free</price>
</game>
<game>
<title lang="en">Minecraft</title>
<price>10.99</price>
</game>
<game>
<title lang="en">Dota 2</title>
<price>life</price>
</game>
</gamelist>
loome faili index.html
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Sandbox</title>
<meta charset="UTF-8" />
</head>
<body>
<div id="app"></div>
<script src="index.mjs" type="module"></script>
</body>
</html>
loome faili html.mjs
// Create an instance of XMLHttpRequest
let xmlhttp = new XMLHttpRequest();
document.getElementById("app").innerHTML = '<table id="xmlTable"></table>'; // Fixed id and added quotes
// Open the XML file
xmlhttp.open("GET", "src/games.xml", false);
// Send the request
xmlhttp.send();
if (xmlhttp.status === 200) {
// Get the XML content
let XMLContent = xmlhttp.responseXML;
// Initialize the table rows
let tableRows = "<tr><th>Title</th><th>Price</th></tr>";
// Get all the game elements
let gameElements = XMLContent.getElementsByTagName("game");
// Iterate through all the games and add them to the table
for (let i = 0; i < gameElements.length; i++) {
tableRows +=
"<tr><td>" +
gameElements[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
+"</td><td>" +
gameElements[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
+"</td></tr>";
// Corrected length typo
}
// Set the table content
document.getElementById("xmlTable").innerHTML = tableRows; // Fixed id
} else {
console.error("console.error");
}
loome faili styles.css
body {
font-family: sans-serif;
}
1.Valmista endale uus Vanilla keskkond Code Sandbox’is.
2.Kasuta järgmist malli index.js sees: index.js
document.getElementById("app").innerHTML = '<table id="xmlTable"></table>';
3.Loo src kausta XML fail näiteks on toodud mängude kohta, aga mõtle endale muu teema. Vaheta küsimärgid enda mängu valiku vastu: games.xml
<?xml version="1.0" encoding="UTF-8"?>
<gamelist>
<game>
<title lang="en">Hearthstone</title>
<price>Free</price>
</game>
<game>
<title lang="en">Minecraft</title>
<price>19.99</price>
</game>
<game>
<title lang="en">Witcher 3</title>
<price>29.99</price>
</game>
</gamelist>
4.Lisa XML faili saamiseks funktsioon. Vaheta küsimärgid games.xml allikaga: index.js
let tableRows = "<tr><th>Title</th><th>Price</th></tr>";
let gameElements = XMLContent.getElementsByTagName("game");
for (let i = 0; i < gameElements.length; i++) {
let title =
gameElements[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
let price =
gameElements[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
tableRows += "<tr><td>" + title + "</td><td>" + price + "</td></tr>";
}
document.getElementById("xmlTable").innerHTML = tableRows;