XML DOM NodeList
- Предыдущая страница Информация о узле DOM
- Следующая страница Прогулка по узлам DOM
Список узлов возвращается методами getElementsByTagName() и свойством childNodes.
Пример
Ниже приведен пример использования файла XML books.xml.
Функция loadXMLDoc()Расположен вне JavaScript и используется для загрузки файла XML.
- Получение текста из первого элемента <title>
- В этом примере используется метод getElementsByTagName() для получения текста из первого элемента <title> файла "books.xml".
- Циклический доступ к узлам с использованием свойства length
- В этом примере используется список узлов и свойство length для циклического доступа ко всем элементам <title> в файле "books.xml".
- Получение свойств элемента
- В этом примере используется список свойств для получения свойств из первого элемента <title> файла "books.xml".
DOM NodeList
При использовании свойств или методов, таких как childNodes или getElementsByTagName(), возвращается объект NodeList.
Объект NodeList представляет список узлов, сохраняя ту же последовательность, что и в XML.
Использование индекса, начинающегося с 0, для доступа к узлам списка.
Следующее изображение представляет "books.xml"Список узлов элементов <title>:"

Ниже приведен фрагмент кода, который использует loadXMLDoc() "Загрузить "books.xml" в xmlDoc и вернуть "books.xml"Список узлов одного из элементов title:"
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
После выполнения предыдущего предложения x становится объектом NodeList.
Следующий фрагмент кода возвращает текст из первого элемента <title> в списке узлов x:
txt=x[0].childNodes[0].nodeValue;
После выполнения предыдущего предложения txt = "Everyday Italian".
Длина списка узлов
Объект NodeList поддерживает свою обновляемость. Если удалять или добавлять элементы, список автоматически обновится.
Атрибут length списка узлов является количеством узлов в списке.
Ниже приведен фрагмент кода, который использует loadXMLDoc() Установить "books.xml"Загрузить xmlDoc, и вернуть количество элементов <title> в "books.xml":
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('title').length;
После выполнения предыдущего предложения x = 4.
Длина списка узлов может быть использована для циклического遍ения всех элементов списка.
Следующий фрагмент кода использует атрибут length для遍ения списка элементов <title>:
xmlDoc=loadXMLDoc("books.xml"); //переменная x будет содержать список узлов x=xmlDoc.getElementsByTagName('title'); for (i=0; i<x.length; i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Вывод:
Harry Potter Everyday Italian XQuery Kick Start Learning XML
Пример的解释:
- Используя loadXMLDoc() Установить "books.xml"Загрузить xmlDoc
- Установить переменную x, содержащую список узлов всех элементов title.
- Вывод значений текстовых узлов всех элементов <title>.
DOM Attribute List (Named Node Map)
Свойства элемента nodes возвращает список узлов свойств.
Это называется Named Node Map, кроме некоторых различий в методах и свойствах, он похож на список узлов.
Список свойств будет поддерживать свою обновляемость. Если удалять или добавлять свойства, этот список автоматически обновится.
Ниже приведен фрагмент кода, который использует loadXMLDoc() Загрузить "books.xml" в xmlDoc и из "books.xmlВозвращается список узлов свойств первого <book> в "
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book')[0].attributes;
После выполнения вышеуказанного кода x.length равен количеству свойств, которые можно вернуть с помощью x.getNamedItem().
Ниже приведен фрагмент кода, который возвращает значение свойства "category" книги и количество ее свойств:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].attributes; document.write(x.getNamedItem("category").nodeValue); document.write("<br />" + x.length);
Вывод:
children 1
Пример的解释:
- Используя loadXMLDoc() Установить "books.xml"Загрузить xmlDoc"
- Установить переменную x как список всех свойств первого элемента <book>
- Вывод значения из свойства "category"
- Вывод длины списка свойств
- Предыдущая страница Информация о узле DOM
- Следующая страница Прогулка по узлам DOM