С DOM, вы можете получить доступ к любому узлу в документе XML.
Попробуйте сами - Примеры
Приведенные ниже примеры используют XML - файл Books.xml .
Получить доступ к узлу , используя его номер индекса в списке узлов
Используйте getElementsByTagName() метод , чтобы получить третий <title> элемент в "books.xml"
Петля через узлы , используя свойство длины
Используйте свойство длины Переберите все <title> элементы в "books.xml"
См тип узла элемента
Используйте свойство NODETYPE , чтобы получить тип узла корневого элемента в "books.xml" .
Перебор узлов элемента
Используйте свойство NODETYPE для узлов элементов , только в процессе "books.xml" .
Петля через узлы элемента с помощью узла связи
Обработать узлы элемента в Используйте свойство NODETYPE и свойство NextSibling "books.xml" .
Доступ к узлов
Вы можете получить доступ к узлу тремя способами:
1. Используя getElementsByTagName() метод
2. пробегаем по (traversing) дерева узлов.
3. навигации по дереву узлов, используя узел связи.
getElementsByTagName() Метод
getElementsByTagName () возвращает все элементы с указанным именем тега.
Синтаксис
node.getElementsByTagName("tagname");
пример
Следующий пример возвращает все <title> элементов под х элементов:
x.getElementsByTagName("title");
Обратите внимание , что приведенный выше пример возвращает только <title> элементов под х узла. Для того, чтобы вернуть все <title> элементов в использовании XML - документа:
xmlDoc.getElementsByTagName("title");
где xmlDoc является сам документ (document node) .
DOM списка узлов
getElementsByTagName() метод возвращает список узлов. Список узел представляет собой массив узлов.
x = xmlDoc.getElementsByTagName("title");
<title> элементы х можно получить по номеру индекса. Чтобы получить доступ к третьей <title> вы можете написать ::
y = x[2];
Note: Индекс начинается с 0.
Вы узнаете больше о списках узлов в следующей главе данного руководства.
DOM Список узлов Длина
Свойство длина определяет длину списка узлов (the number of nodes) .
Вы можете перебрать список узлов, используя свойство длины:
пример
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Попробуй сам " Типы узлов
documentElement свойство документа XML является корневой узел.
nodeName свойство узла является именем узла.
nodeType свойство узла является тип узла.
Вы узнаете больше о свойствах узла в следующей главе данного руководства.
обходе узлов
Следующий код перебирает дочерние узлы, которые также являются узлы элементов, из корневого узла:
пример
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
Попробуй сам " Объяснение примера:
- Предположим , что вы загрузили " Books.xml " в xmlDoc
- Получить дочерние узлы корневого элемента (xmlDoc)
- Для каждого дочернего узла, проверьте тип узла. Если тип узла "1" это узел элемента
- Выходное имя узла, если он является узлом элемента
Перемещение по Узел Связи
Следующий код переходит дерево узлов с помощью узла связи:
пример
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
Попробуй сам " Объяснение примера:
- Предположим , что вы загрузили " Books.xml " в xmlDoc
- Получить дочерние узлы первой книги элемента
- Установите "y" переменную , чтобы быть первым дочерним узлом первой книги элемента
- Для каждого дочернего узла (starting with the first child node "y") :
- Проверьте тип узла. Если тип узла "1" это узел элемента
- Выходное имя узла, если он является узлом элемента
- Установите "y" переменную , чтобы быть следующим узлом родного брата, и снова запустить через петлю