DOM свойства XML документа childNodes, firstChild и lastChild – ч.2

Рубрика: DOM - Объектная Модель Документа

Доброго времени суток, уважаемые посетители okITgo.ru! Продолжим рассматривать свойства DOM объекта XML Документ и остановимся сегодня на свойствах, указывающих на "родственные" узлы документа: childNodes – дочерние узлы, firstChild – первый сын и lastChild – последний сын.


Справка по Объекту Документ Объект Документ

Свойство childNodes

Определение и Использование

Свойство childNodes возвращает Список дочерних узлов документа.

Синтаксис

documentObject.childNodes


Советы и Замечания

Совет: Используйте свойство length Списка Узлов, чтобы определить количество узлов в списке узлов. Когда Вы знаете длину списка узлов, Вы можете легко пройти по нему в цикле и извлечь значения, которые Вам требуются!


Пример

Следующий фрагмент кода загружает "books.xml" в xmlDoc с помощью loadXMLDoc() и выводит дочерние узлы XML документа:

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.childNodes;
for (i=0;i<x.length;i++)
{
document.write("Имя узла: " + x[i].nodeName);
document.write(" (тип узла: " + x[i].nodeType + ")");
}

Вывод IE:

Имя узла: xml (тип узла: 7)
Имя узла: #comment (тип узла: 8)
Имя узла: bookstore (тип узла: 1)

Вывод Mozilla (Firefox):

Имя узла: #comment (тип узла: 8)
Имя узла: bookstore (тип узла: 1)

Попробуйте сами »

Примеры – Попробуйте Сами

Показать все дочерние узлы всех элементов в XML документе


Справка по Объекту Документ Объект Документ

Свойство firstChild

Определение и Использование

Свойство firstChild возвращает первый дочерний узел документа.

Синтаксис

documentObject.firstChild


Советы и Замечания

Замечание: Firefox и большинство других браузеров будут интерпретировать пустые пробельные символы и переходы на новую строку как текстовые узлы, а Internet Explorer – нет. Поэтому пример ниже использует функцию, которая проверяет тип узла для первого дочернего узла.

Узлы элементов имеют тип узла 1, так что если первый сын не является узлом элемента, функция переходит к следующему узлу и проверяет, является ли он узлом элемента. Это продолжается до тех пор, пока первый дочерний узел (который будет узлом элемента) не будет найден. Таким образом, результат будет корректным во всех браузерах.

Совет: Подробнее о различиях между браузерами Вы можете прочитать в статье DOM Браузеры рубрики XML DOM.


Пример

Следующий фрагмент кода загружает "books.xml" в xmlDoc с помощью loadXMLDoc() и отображает имя и тип первого дочернего узла документа:

Пример

//проверка, является ди первый сын узлом элемента
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}

xmlDoc=loadXMLDoc("books.xml");

x=get_firstchild(xmlDoc);
document.write("Имя узла: " + x.nodeName);
document.write(" (тип узла: " + x.nodeType);

Вывод:

Имя узла: bookstore (тип узла: 1)

Попробуйте сами »


Примеры – Попробуйте Сами

Получить последний дочерний элемент документа


Справка по Объекту Документ Объект Документ

Свойство lastChild

Определение и Использование

Свойство lastChild возвращает последнего сына документа.

Синтаксис

documentObject.lastChild


Советы и Замечания

Замечание: Firefox и большинство других браузеров будут интерпретировать пустые пробельные символы и переходы на новую строку как текстовые узлы, а Internet Explorer – нет. Поэтому пример ниже использует функцию, которая проверяет тип узла для первого дочернего узла.

Узлы элементов имеют тип узла 1, так что если первый сын не является узлом элемента, функция переходит к следующему узлу и проверяет, является ли он узлом элемента. Это продолжается до тех пор, пока первый дочерний узел (который будет узлом элемента) не будет найден. Таким образом, результат будет корректным во всех браузерах.

Совет: Подробнее о различиях между браузерами Вы можете прочитать в статье DOM Браузеры рубрики XML DOM.


Пример

Следующий фрагмент кода загружает "books.xml" в xmlDoc, используя loadXMLDoc(), и получает последний дочерний элемент документа:

Пример

//проверка того, что последний сын является узлом элемента
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}

xmlDoc=loadXMLDoc("books.xml");

x=get_lastchild(xmlDoc);
document.write("Имя узла: " + x.nodeName);
document.write(" (тип узла: " + x.nodeType);

Вывод:

Имя узла: bookstore (тип узла: 1)

Попробуйте сами »


Примеры – Попробуйте Сами

Получить первый дочерний узел документа


Справка по Объекту Документ Объект Документ