Почему при использовании скриптов, приведенных в курсе Основы XML лекция Лекция 8: Отображение XML-документов с использованием связывания данных не происходит связывания XLM документа с HTML? Отображаются пустые поля. Браузер IE11 |
Отображение XML-документов с использованием сценариев объектной модели документа
Свойство узла Document | Описание | Пример |
---|---|---|
doctype | Узел DocumentType, представляющий объявление типа документа | DocumentType = Document.doctype; |
documentElement | Узел Element, представляющий корневой элемент | RootElement = Document.documentElement; |
ondataavailable | Если вы присвоите этому свойству имя функции, которую вы написали, функция будет вызываться в момент доступности данных XML | Document.ondataavailable = MyDataAvailableHandler; (Функция MyDataAvailableHandler будет вызываться, когда станут доступными данные XML) |
onreadystatechange | Если вы присвоите этому свойству имя функции, которую вы написали, функция будет вызываться всякий раз, когда изменяется свойство readyState узла Document. (Об этом свойстве см. далее в этой таблице) | Document.onreadystatechange = MyReadyStateHandler; (Функция MyReadyStateHandler будет вызываться всякий раз при изменении свойства readyState узла Document ) |
parseError | Объект, который содержит информацию о любых ошибках, которые возникают в процессе обработки документа | ErrorCode = Document.parseError.errorCode; |
readyState | Текущий статус загрузки и обработки XML-документа. Может принимать одно из следующих числовых значений: 0: не инициализирован 1: загружается 2: загружен 4: завершение |
if (Document.readyState == 4) /* обработка данных… */ |
url | URL XML-документа | URL = Document.url; |
getElementsByTagName(type-name) | Возвращает множество NodeList всех элементов в документе, которые имеют заданное имя типа. Если указано "*", возвращает все элементы | AuthorElementCollection = Document.getElementsByTagName("AUTHOR"); |
nodeFromID(id-value) | Возвращает узел, представляющий элемент, чей атрибут типа ID имеет указанное значение. (Подробнее об атрибутах ID см. раздел "Задание маркерного типа" в "Создание валидных XML-документов" ) | Element = Document.nodeFromID("S021"); |
Символьные данные элемента TITLE, которые получены из выражения справа от знака равенства ("The Adventures of Huckleberry Finn") присваиваются свойству innerText HTML-элемента SPAN, имеющему идентификатор title:
title.innerText= Document.documentElement.childNodes(0).text;
Этот элемент SPAN определен внутри элемента BODY HTML-страницы следующим образом:
<SPAN ID="title" STYLE="font-weight:bold"></SPAN>
Присвоение символьных данных свойству innerText элемента SPAN приводит к тому, что элемент SPAN отображает текст с использованием формата, определенного в его начальном теге ( font-weight:bold ).
Подсказка. В Dynamic HTML (DHTML), который поддерживает Internet Explorer 5, каждый HTML-элемент имеет набор свойств, которые вы можете использовать для установки или получения различных характеристик элемента через код сценария. Свойство innerText устанавливает или получает текстовое содержимое элемента. Подробную информацию о работе с HTML и DHTML в Internet Explorer 5 вы можете найти на Web-сайте, предоставленном MSDN: http://msdn.microsoft.com/workshop/author/default.asp.
Использование объекта NodeList
Свойство childNodes узла содержит набор дочерних узлов текущего узла, не являющихся атрибутами. (Доступ к дочерним узлам-атрибутам осуществляется через свойство attributes узла.) Определенный тип набора, который содержит свойство childNodes, носит название объекта NodeList.
Чтобы извлечь определенный дочерний узел из объекта NodeList, вы можете обратиться к его методу item, указав при этом индекс дочернего узла, который вы хотите получить (индексы отсчитываются с нуля). Например, обращение к следующему методу позволяет получить первый дочерний узел, принадлежащий узлу Element:
FirstNode = Element.childNodes.item(0);
Однако, поскольку item является методом по умолчанию объекта NodeList, вы можете опустить его, как это делалось в предыдущих примерах в этой лекции:
FirstNode = Element.childNodes(0);
В таблице 9.4 представлены свойства и методы, предоставляемые объектом NodeList.
Свойство NodeList | Описание | Пример |
---|---|---|
length | Количество узлов, содержащихся в наборе | NodeCount = Element.childNodes.length; |
Метод NodeList | Описание | Пример |
item (индекс, отсчитываемый с 0) (метод по умолчанию) | Возвращает узел в соответствии с заданным вами индексом, при этом 0 соответствует первому узлу | SecondChild = Element.childNodes.item(1); или SecondChild = Element.childNodes(1); |
reset() | Устанавливает внутренний указатель на позицию перед первым узлом в наборе, чтобы последующий вызов nextNode возвращал первый узел | Element.childNodes.reset(); |
nextNode() | Возвращает следующий узел в наборе в соответствии с позицией внутреннего указателя | Element.childNodes.reset(); FirstNode = Element.childNodes.nextNode(); |