Использование XML DOM
Задание
Задание 1
Составьте несколько XML-документов, в которых будет храниться информация о студентах. При помощи XML DOM выведите по 1-му любому из студентов.
Решение
Html
<input type="file" value="Выбрать файл" id="fileChoose">
<input type="button" value="Показать информацию о студенте" id="print">
<div id="output"></div>
XML-1
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="lw5.xslt"?>
<students>
<student>
<last-name>Добриян</last-name>
<name>Александр</name>
<patronymic>Витальевич</patronymic>
<average-mark>7</average-mark>
<birth>2002</birth>
</student>
</students>
XML-2
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="lw5.xslt"?>
<students>
<student>
<last-name>Добриян</last-name>
<name>Александр</name>
<patronymic>Витальевич</patronymic>
<average-mark>6</average-mark>
<birth>2003</birth>
</student>
</students>
Java Script
Выполнить код
let xml
let output = document.getElementById("output")
let fileChoose = document.getElementById("fileChoose")
let printButton = document.getElementById("print")
fileChoose.addEventListener("change", readFile)
printButton.addEventListener("click", print)
function readFile() {
let files = fileChoose.files
let reader = new FileReader()
let file = files[0]
reader.readAsText(file)
reader.onload = function (e) {
xml = e.target.result
}
}
function print() {
if (window.DOMParser) {
parser = new DOMParser()
xmlDoc = parser.parseFromString(xml, "text/xml")
}
else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.loadXML(xml)
}
let lastName = xmlDoc.getElementsByTagName("last-name")
let name = xmlDoc.getElementsByTagName("name")
let patronymic = xmlDoc.getElementsByTagName("patronymic")
let averageMark = xmlDoc.getElementsByTagName("average-mark")
let birth = xmlDoc.getElementsByTagName("birth")
let newElement = document.createElement("div")
newElement.innerHTML = ( "Фамилия: " + lastName[0].innerHTML
+ "<br /> Имя : " + name[0].innerHTML
+ "<br /> Отчество : " + patronymic[0].innerHTML
+ "<br /> Средний балл: " + averageMark[0].innerHTML
+ "<br /> Год рождения : " + birth[0].innerHTML")
output.appendChild(newElement)
}