new DOMParser();
const xmlString = `
<list>
<student>
<name lang="en">
<first>Ivan</first>
<second>Ivanov</second>
</name>
<age>35</age>
<prof>teacher</prof>
</student>
<student>
<name lang="ru">
<first>Петр</first>
<second>Петров</second>
</name>
<age>58</age>
<prof>driver</prof>
</student>
</list>
`;
const xmlDOM = parser.parseFromString(xmlString, "text/xml");
const listNode = xmlDOM.querySelector("list");
const student = listNode.querySelector("student");
var i;
var list1 = [];
for (i = 0; i < student.length; i++) {
const studentVar = student[i];
const nameNode = studentVar.querySelector("name");
const firstNode = nameNode.querySelector("first");
const secondNode = nameNode.qureySelector("second");
const ageNode = studentVar.querySelector("age");
const profNode = studentVar.querySelector("prof");
const langNode = nameNode.getAttribute("lang");
list1[i]= {'name': firstNode, secondNode,'age': Number(ageNode), 'prof': profNode, 'lang': langNode};
}
console.log(list1);
мне нужно сконвертировать xml в объект
После какой строки получается не то что нужно хотя бы?
Надо использовать querySelectorAll чтобы student был "массивом" (nodeList на самом деле)
Не помогает. По логике querySelectorAll ставлю в строчку: const student = listNode.querySelectorAll("student"); Но и здесь и далее возникает ошибка nameNode.querySelector is not a function или nameNode.querySelectorAll is not a function
У вас опечатка на 33й строке, query неправильно написано было,
Точку надо перед student, если student это класс
Обсуждают сегодня