Методы узла compareDocumentPosition(), isEqualNode(), isSameNode(), hasAttributes() и hasChildNodes() – ч.2

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

Здравствуйте, уважаемые читатели блога okITgo.ru! Сегодня мы продолжим рассматривать методы DOM объекта Узел XML документа и более подробно остановимся на способах сравнения узлов с помощью методов compareDocumentPosition(), isEqualNode() и isSameNode(), а также научимся определять, имеет ли заданный узел какие-либо атрибуты (метод hasAttributes()) или дочерние узлы (метод hasChildNodes()).

Метод compareDocumentPosition()


Справочник Объекта Узел Объект Узел

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

Метод compareDocumentPosition() сравнивает положение (позицию) в документе текущего узла с указанным узлом в соответствии с порядком документа.

Синтаксис

nodeObject.compareDocumentPostition(node)

Параметр Описание
node Обязательный. Указывает узел для сравнения с текущим узлом


Пример

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

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName(‘book’)[0];
y=xmlDoc.getElementsByTagName(‘book’)[2];

document.write(x.compareDocumentPosition(y));

Вывод:

4

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

Firefox и большинство других браузеров трактуют пустые пробельные символы и переходы на новую строку как текстовые узлы, в отличие от браузера Internet Explorer, который этого не делает. Так что в примере выше браузеры Mozilla выведут результат 4, тогда как браузер Internet Explorer покажет число 2.

Чтобы узнать больше о различиях между браузерами, смотрите статью о Различиях Между Браузерами при Разборе XML Документа.


Метод hasAttributes()


Справочник Объекта Узел Объект Узел

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

Метод hasAttributes() возвращает true (истину), если узел имеет хотя бы один атрибут, в противном случае – возвращает false (ложь).

Синтаксис

nodeObject.hasAttributes()


Пример

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

Пример

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName(‘book’)[0];

document.write(x.hasAttributes());

Вывод:

true

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


Метод hasChildNodes()


Справочник Объекта Узел Объект Узел

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

Метод hasChildNodes() возвращает true (истину), если узел имеет хотя бы один дочерний элемент, иначе возвращает false (ложь).

Синтаксис

nodeObject.hasChildNodes()


Пример

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

Пример

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];

document.write(x.hasChildNodes());

Вывод:

true

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


Метод isEqualNode()


Справочник Объекта Узел Объект Узел

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

Метод isEqualNode() возвращает истину, если узел равен заданному узлу, в противном случае возвращает ложь.

Синтаксис

nodeObject.isEqualNode(node)

Параметр Описание
node Обязательный. Узел для проверки


Пример

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

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[1];
y=xmlDoc.getElementsByTagName("book")[2];

document.write(x.isEqualNode(y));

Вывод:

false


Метод isSameNode()


Справочник Объекта Узел Объект Узел

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

Метод isSameNode() вернет true, если узел является тем же самым узлом, что и заданный узел, иначе он вернет false.

Синтаксис

nodeObject.isSameNode(node)

Параметр Описание
node Обязательный. Узел для проверки


Пример

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

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0];
y=xmlDoc.getElementsByTagName("book")[1];

document.write(x.isSameNode(y));

Вывод:

false

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


Справочник Объекта Узел Объект Узел

Ваш отзыв