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

Определение и Использование
Метод compareDocumentPosition() сравнивает положение (позицию) в документе текущего узла с указанным узлом в соответствии с порядком документа.
Синтаксис
nodeObject.compareDocumentPostition(node) |
Параметр | Описание |
---|---|
node | Обязательный. Указывает узел для сравнения с текущим узлом |
Пример
Следующий фрагмент кода загружает "books.xml" в xmlDoc, используя loadXMLDoc(), сравнивает положение в документе первого и третьего элементов <book>:
Пример
Вывод:
Попробуйте сами » |
Firefox и большинство других браузеров трактуют пустые пробельные символы и переходы на новую строку как текстовые узлы, в отличие от браузера Internet Explorer, который этого не делает. Так что в примере выше браузеры Mozilla выведут результат 4, тогда как браузер Internet Explorer покажет число 2.
Чтобы узнать больше о различиях между браузерами, смотрите статью о Различиях Между Браузерами при Разборе XML Документа.
Метод hasAttributes()

Определение и Использование
Метод hasAttributes() возвращает true (истину), если узел имеет хотя бы один атрибут, в противном случае – возвращает false (ложь).
Синтаксис
nodeObject.hasAttributes() |
Пример
Следующий фрагмент кода загружает "books.xml" в xmlDoc с помощью loadXMLDoc() и определяет, имеет ли первый элемент <book> атрибуты (хотя бы один):
Пример
Вывод:
Попробуйте сами » |
Метод hasChildNodes()

Определение и Использование
Метод hasChildNodes() возвращает true (истину), если узел имеет хотя бы один дочерний элемент, иначе возвращает false (ложь).
Синтаксис
nodeObject.hasChildNodes() |
Пример
Следующий фрагмент кода загружает "books.xml" в xmlDoc посредством loadXMLDoc() и проверяет, имеет ли первый элемент <book> хотя бы одного сына:
Пример
Вывод:
Попробуйте сами » |
Метод 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() и проверяет, являются ли два узла одним и тем же узлом:
Пример
Вывод:
Попробуйте сами » |
