Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания для Лабораторных работ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.54 Mб
Скачать

3.2. Реализация dom xml в Internet Explorer

Существует несколько реализаций DOM для XML. Так, в программе XML Spy реализована своя версия DOM. В то же время, в Internet Explorer, начиная с версии 5.0, включен встроенный анализатор XML. Анализатор доступен внутри сценариев на языках JavaScript и VBScript в документах HTML и поддерживает, помимо свойств и методов, определенных в спецификации DOM Level 2 Core Specification, некоторые собственные свойства и методы. Для того, чтобы в сценарии JavaScript документа HTML применить к элементам документа HTML свойства и методы DOM, необходимо загрузить документ XML из файла с помощью следующей последовательности операторов:

<script type="text/javascript">

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.load("имя-файла.xml");

// Операторы обработки документа

</script>

Анализируемый текст может быть загружен не только из текстового файла, но и из строки, например:

<script type="text/javascript">

var stringXML="содержимое документа XML";

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.loadXML(stringXML);

// Операторы обработки документа

</script>

Вывести содержимое документа XML на экран Web-браузера можно с помощью оператора

document.write("<xmp>" + xmlDoc.xml + "</xmp>");

При попытке открыть документ XML или неправильном документе XML анализатор генерирует объект parseError.

Этот объект имеет следующие свойства:

        • errorCode – код ошибки в виде длинного целого числа (при нормальной завершении операции значение кода ошибки равно нулю);

        • reason – сообщение, поясняющее причину ошибки;

        • line – номер строки для ошибки в виде длинного целого числа;

        • linePos – позиция строки для ошибки в виде длинного целого числа;

        • srcText – содержимое строки, вызвавшей ошибку;

        • url – URL загруженного документа.

        • filePos – позиция файла ошибки.

Следует отметить, что объект parseError не является частью спецификации W3C DOM.

Пример вывода сообщения об ошибке при загрузке файла:

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false";

xmlDoc.load("message1.xml");

var fileErrorCode = xmlDoc.parseError.errorCode;

if (fileErrorCode != 0)

{

document.write("<br />Error Code: ");

document.write(fileErrorCode);

document.write("<br />Error Reason: ");

document.write(xmlDoc.parseError.reason);

document.write("<br />Error Line: ");

document.write(xmlDoc.parseError.line);

}

3.3. Фундаментальные типы узлов dom для xml

3.3.1. Узлы NodeList и NamedNodeMap

В DOM определен узел типа NodeList для обработки упорядоченных списков узлов (например, дочерних узлов какого-либо узла). Для этого интерфейса определены свойство length (только для чтения), значением которого является количество узлов в списке и метод item(индекс), возвращающий объект типа Node с заданным индексом (индексация узлов начинается с нуля).

Для неупорядоченных списков узлов (например, атрибутов элемента) определен узел типа NamedNodeMap, также содержащий свойство length и следующие методы:

        • getNamedItem(имя) – возвращает атрибут с указанным именем (объект типа Node);

        • item(индекс) – возвращает атрибут с указанным индексом (объект типа Node);

        • removeNamedItem(имя) – удаляет атрибут с указанным именем (возвращает удаляемый объект типа Node);

        • setNamedItem(узел) – добавляет атрибут с объектом типа Node (возвращает добавляемый объект типа Node).