Пробивание узлов дерева XML DOM

Пробивание (Traverse) означает циклическое или линейное движение по дереву узлов.

Пример

Ниже приведен пример, который использует файл XML: books.xml.

Функция loadXMLString()находится во внешнем JavaScript, предназначенном для загрузки файла XML.

Пробивание узлов дерева
Циклически обрабатываем все подузлы элемента <book>.

Пробивание узлов дерева

Часто вам нужно циклически обрабатывать документ XML, например: когда вам нужно извлечь значение каждого элемента.

Этот процесс называется «пробиванием узлов дерева».

Ниже приведен пример, который циклически обрабатывает все подузлы <book> и отображает их имена и значения:

<html>
<head>
<script type="text/javascript" src="loadxmlstring.js"></script>
</head>
<body>
<script type="text/javascript">
text="<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
xmlDoc=loadXMLString(text);
// documentElement всегда представляет корневой узел
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{
document.write(x[i].nodeName);
document.write(": ");
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}
</script>
</body>
</html>

Вывод:

заголовок: Harry Potter
автор: J K. Rowling
год: 2005

Объяснение примера:

  • loadXMLString() Загрузка строки XML в xmlDoc
  • Получение подузлов корневого элемента
  • Вывод имени каждого подузла и значения узла текста

TIY