<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<button type="button" onclick="loadDoc()">Load</button>
<br><br>
<table id="myTable"></table>
</body>
</html>
// Code goes here
// Code goes here
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "file.xml", true);
xhttp.send();
xhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
xmlFunction(this.response);
}
};
}
function xmlFunction(xml) {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xml, "text/xml");
var table = "<tr><th>Category</th><th>Title</th><th>Subcategory</th></tr>"; //subcategory heading
var x = xmlDoc.getElementsByTagName("ITEM");
for (var elem of x) {
var titles = elem.getElementsByTagName(
"TITLE")[0].childNodes[0].nodeValue;
var cats = elem.getElementsByTagName("CATEGORY")[0].childNodes[0].nodeValue;
var subCats = elem.getElementsByTagName("SUBCATEGORY").length === 0 ? "..." : elem.getElementsByTagName("SUBCATEGORY")[0].childNodes[0].nodeValue;
table += "<tr><td>" + cats + "</td><td>" + titles + "</td><td>" + subCats+ "</td></tr>";
}
document.getElementById("myTable").innerHTML = table;
}
/* Styles go here */
/* Styles go here */
table,
th,
td {
border: 1px solid black;
border-collapse: collapse;
}
th,
td {
padding: 5px;
}
<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<ITEM>
<TITLE>TITLE01</TITLE>
<CATEGORY>CAT01</CATEGORY>
<SUBCATEGORY>SUBCAT01</SUBCATEGORY>
<ID>ID01</ID>
</ITEM>
<ITEM>
<TITLE>TITLE02</TITLE>
<CATEGORY>CAT02</CATEGORY>
<SUBCATEGORY>SUBCAT01</SUBCATEGORY>
<ID>ID02</ID>
</ITEM>
<ITEM>
<TITLE>TITLE03</TITLE>
<CATEGORY>CAT03</CATEGORY>
<SUBCATEGORY>SUBCAT03</SUBCATEGORY>
<ID>ID03</ID>
</ITEM>
<ITEM>
<TITLE>TITLE04</TITLE>
<CATEGORY>CAT04</CATEGORY>
<SUBCATEGORY>SUBCAT04</SUBCATEGORY>
<ID>ID04</ID>
</ITEM>
<ITEM>
<TITLE>TITLE05</TITLE>
<CATEGORY>CAT05</CATEGORY>
<SUBCATEGORY/>
<ID>ID05</ID>
</ITEM>
</CATALOG>