Javascript сценарий, обрабатывающий xml документ, приведенный в приложении 1


Содержание

Сценарии объектной модели документа DOM XML: отображение XML-документа на Web-странице

Связывание XML-документа с HTML-страницей, структура DOM, свойства и методы

Объектная модель XML-документа, или DOM (Document Object Model) состоит из группы программных объектов, представляющих различные компоненты XML-документа. Свойства и методы этих объектов позволяют использовать сценарии для отображения XML-документа с HTML-страницы. DOM хранит данные в древообразной структуре, отражающей иерархическую структуру XML-документа, и предоставляет доступ к любым компонентам XML-документа, включая элементы, атрибуты, инструкции по обработке, комментарии и объявления нотаций и примитивов.

Чтобы получить доступ к XML-документу с использованием DOM, вы должны связать XML-документ с HTML-страницей. На HTML-странице это можно сделать через так называемый фрагмент данных:

Идентификатор ID, который вы назначаете фрагменту данных, указывает на DSO (Data Source Object) документа. Свойство объекта DSO «XMLDocument» содержит корневой объект DOM, называемый также «узел документа». Вы можете использовать это свойство для доступа к DOM в сценариях:

Полный перечень свойств, методов и событий объекта DSO документа вы можете получить в MSDN, воспользовавшись, например, поиском по словосочетанию «xml Object». Если вы хотите иметь доступ к нескольким XML-документам с HTML-страницы, вы можете поместить фрагмент данных для каждого из них. Кроме того, вы можете включить несколько фрагментов данных для одного XML-документа. Последний приём может оказаться полезным для поддержки нескольких различных версий данных XML, если ваша страница модифицирует эти данные (в этой статье приёмы модификации XML-данных не рассматриваются).

Программные объекты, представляющие XML-документ, называются узлами. DOM использует различные типы узлов для представления различных компонентов XML:

Тип узла Компонент XML nodeName nodeValue
Document корневой узел документа (весь XML-документ) #document null
Element элемент имя типа элемента null
Text текст элемента, атрибута или примитива #text текст родительского XML-компонента
Attribute атрибут, пара имя-значение в инструкции по обработке, пара SYSTEM-литерал в объявлении внешнего примитива, пара NDATA-имя нотации в объявлении неразбираемого примитива. имя атрибута значение атрибута
Processing-Instruction инструкция по обработке предназначение инструкции содержимое инструкции
Comment комментарий #comment текст комментария
CDATASection раздел CDATA #cdata-section содержимое раздела CDATA
DocumentType объявление типа документа имя корневого элемента null
Entity объявление примитива в DTD имя примитива null
Notation объявление нотации в DTD имя нотации null

Вы можете получить имя каждого узла из свойства узла nodeName. Имена, начинающиеся с символа #, представляют компоненты XML, не поименованные в документе. Например, комментарий в XML-документе не обладает именем. В связи с этим DOM использует стандартное имя #comment. В общем случае имена узлов соответствуют именам, присвоенным соответствующим компонентам в XML-документе.

Вы можете получить значение каждого узла из свойства узла nodeValue. Если компонент XML непосредственно не имеет значения, DOM устанавливает в качестве значения null.

Каждый узел, как программный объект, имеет свойства и методы. Все типы узлов, помимо специфического собственного набора свойств и методов, используют общий набор свойств и методов. Вот некоторые полезные свойства, поддерживаемые всеми типами узлов (полный перечень свойств, методов и событий узлов вы можете получить в MSDN, воспользовавшись, например, поиском по словосочетанию «IXMLDOMDocument/DOMDocument Members»):

Свойство Описание Пример (JavaScript)
attributes Коллекция NamedNodeMap всех дочерних узлов-атрибутов данного узла. AttributeNode = Element.attributes.getNamedItem(«ItemName»);
childNodes Множество NodeList всех дочерних узлов-неатрибутов данного узла. FirstNode = Element.childNodes(0);
dataType Тип данных узла-атрибута, если этот тип данных определён в DTD. AttributeType = Attribute.dataType;
firstChild Первый дочерний узел данного узла, не являющийся атрибутом. FirstChildNode = Element.firstChild;
lastChild Последний дочерний узел данного узла, не являющийся атрибутом. LastChildNode = Element.lastChild;
nextSibling Следующий узел (любого типа) на том же уровне данного узла. NextElement = Element.nextSibling;
nodeName Имя данного узла. ElementName = Element.nodeName;
nodeType Тип данного узла (число). NodeTypeCode = Element.nodeType;
nodeTypeString Тип данного узла (строка строчными буквами). NodeTypeString = Element.nodeTypeString;
nodeValue Значение данного узла (если узел не содержит значения, null). AttributeValue = Attribute.nodeValue;
ownerDocument Корневой узел документа, содержащего данный узел. Document = Element.ownerDocument;
parentNode Узел, для которого данный узел является дочерним (не действует для атрибутов). parentElement = Element.parentNode;
previousSibling Предыдущий узел (любого типа) на том же уровне данного узла. PreviousElement = Element.previousSibling;
text Всё текстовое содержимое данного узла, включая подчинённые узлы. AllCharacterData = Element.text;
xml Всё xml-содержимое данного узла, включая подчинённые узлы. XMLContent = Element.xml;

Свойство будет иметь значение null, если оно неприменимо к данному конкретному узлу. Помимо общих свойств и методов, каждому типу узлов присущи дополнительные свойства и методы, специфические для определённого XML-компонента, который представляет узел. Вот некоторые полезные свойства, методы и события, предоставляемые корневым узлом документа:

Свойство / метод / событиеОписаниеПример (JavaScript)
doctypeУзел типа DocumentType, представляющий DTD.DocumentType = Document.doctype;
entitiesКоллекция NamedNodeMap узлов типа Entity, для всех объявлений примитивов в DTD.collEntities = Document.doctype.entities;
notationsКоллекция NamedNodeMap узлов типа Notation, для всех объявлений нотаций в DTD.collNotations = Document.doctype.notations;
documentElementУзел, представляющий корневой элемент документа.RootElement = Document.documentElement;
ondataavailableСобытие возникает, когда данные XML становятся доступными.Document.ondataavailable = MyDataAvailableHandler;
onreadystatechangeСобытие возникает, когда изменяется значение свойства readyState.Document.onreadystatechange = MyReadyStateHandler;
parseErrorОбъект, содержащий информацию об ошибках, возникших в процессе обработки документа.ErrorCode = Document.parseError.ErrorCode;
readyStateТекущий статус загрузки и обработки XML-документа (число). Возможные значения:

  • 0 — не инициализирован.
  • 1 — загружается.
  • 2 — загружен.
  • 3 — интерактивный режим.
  • 4 — готово.

if(Document.readyState == 4)
/* обработка данных. */
urlURL XML-документа.URL = Document.url;
getElementsByTagName(typename)Возвращает множество NodeList всех элементов заданного типа. Если указано «*», возвращает все элементы.ProductElementsCollection = Document.getElementsByTagName(«PRODUCT»);
nodeFromID(idvalue)Возвращает узел, представляющий элемент с заданным значением атрибута типа ID.Element = Document.nodeFromID(«S021»);

Вот некоторые полезные методы, предоставляемые узлами документа типа Element:

Метод Описание Пример (JavaScript)
getAttribute(name) Возвращает значение атрибута с заданным именем. AttValue = Element.getAttribute(«import»);
getAttributeNode(name) Возвращает узел типа Attribute, представляющий атрибут с заданным именем. Attribute = Element.getAttributeNode(«import»);
getElementsByTagName(typename) Возвращает множество NodeList всех подчинённых элементов заданного типа. Если указано «*», возвращает все подчинённые элементы. SortElementsCollection = Element.getElementsByTagName(«SORT»);

Некоторые свойства и методы, приведённые выше, возвращают объект-коллекцию NodeList. Вот свойства и методы, поддерживаемые этой коллекцией:

Свойство / метод Описание Пример (JavaScript)
length Количество элементов (узлов) в коллекции. NodeCount = Element.childNodes.length;
item(index) Возвращает узел по заданному индексу. Отсчёт начинается с нуля. Данный метод является методом по умолчанию. SecondChild = Element.childNodes.item(1);
SecondChild = Element.childNodes(1);
reset() Устанавливает внутренний указатель на позицию перед первым узлом в наборе, чтобы следующий вызов nextNode() возвращал первый узел. Element.childNodes.reset();
nextNode() Возвращает следующий узел в наборе, в соответствии с позицией внутреннего указателя. Element.childNodes.reset();
FirstNode = Element.childNodes.nextNode();

Свойство attributes и некоторые другие свойства, приведённые ранее, возвращают объект-коллекцию NamedNodeMap. Эта коллекция несколько отличается от коллекции NodeList. Помимо свойств и методов коллекции NodeList, коллекция NamedNodeMap поддерживает метод getNamedItem:

Метод Описание Пример (JavaScript)
getNamedItem() Возвращает узел, соответствующий атрибуту с заданным именем. imp = Element.attributes.getNamedItem(«import»);

Свойство text, описанное ранее, хорошо подходит для извлечения символьных данных элемента в том случае, если элемент не имеет дочерних элементов. Если элемент содержит один или более дочерних элементов помимо символьных данных, свойство text вернёт весь текст, включая текст дочерних элементов. Чтобы получить символьные данные только самого элемента, без символьных данных дочерних элементов, потребуется осуществить доступ к дочернему узлу типа Text. Символьные данные элемента хранятся в дочерних узлах типа Text, и их можно получить через свойство nodeValue каждого из дочерних узлов типа Text. Если символьные данные элемента смешаны с дочерними элементами, комментариями или инструкциями по обработке, каждый отдельный блок символьных данных представлен собственным дочерним узлом типа Text. Например, приведённый ниже элемент будет иметь три дочерних узла: узел типа Text, узел дочернего элемента и ещё один узел типа Text.

блок символьных данных
текст подчинённого элемента
ещё один блок символьных данных

Полезные свойства и методы, предоставляемые узлами типа Text:

Свойство / метод Описание Пример (JavaScript)
length Количество символов в тексте узла. CharacterCount = Element.length;
substringData(startNum, count) Возвращает строку, содержащую заданное число символов из текстового содержимого узла, начиная с указанного по номеру символа. В примере будут возвращены третий, четвёртый и пятый символы. SubString = Element.substringData(2, 3);

Пример отображения XML-документа на HTML-странице

Попробуем отобразить на HTML-странице следующий XML-документ, представляющий из себя некий абстрактный упрощённый каталог товаров:

Вот текст HTML-документа, отображающего этот каталог товаров:

Приведённая выше HTML-страница содержит фрагмент данных для связи с XML-документом (с идентификатором «dsoPROD»), и скрипт, использующий свойства и методы объекта dsoPROD, который выводит содержимое XML-документа в элемент HTML-страницы DIV (с идентификатором «ResultDiv»), расположенный внизу страницы. Скрипт запускается в момент загрузки HTML-документа. Текст скрипта подробно прокомментирован и в дополнительных пояснениях не нуждается.

Отображение структуры произвольного XML-документа на HTML-странице

Приведённый ниже сценарий отображает произвольный XML-документ на Web-странице в иерархическом виде, наглядно демонстрируя иерархическую природу DOM.

Как включить Javascript в xml-документ?

Задача кажется довольно простой: как включить Javascript файл в xml-документ, чтобы хотя бы Opera и Firefox могли его разобрать и выполнить код?

Добавить script, где указано пространство имен XHTML, оно будет работать нормально.

Если я получу вас, вы хотите, чтобы XML-документ запускал javascript при просмотре в браузере?

Это не является частью стандарта XML, и поэтому он не будет использоваться до тех пор, пока он не будет (я полагаю, это никогда не будет поддерживаться, потому что XML не предназначен для отображения, а для данных). Если вы говорите о XHTML, это другое дело.

Изменить: просто чтобы прояснить мой ответ.

XML никогда не предназначался для отображения разметки, такого как HTML, поэтому был разработан XHTML (HTML, который соответствует стандартам XML). Браузеры были сделаны для интерпретации XHTML определенным образом, но XML — это просто необработанные данные.

Если вы хотите, чтобы ваш XML запускал дополнения, такие как JavaScript, вам нужно будет рассмотреть возможность использования XSLT для преобразования вашего XML в XHTML и, следовательно, воспользоваться возможностями браузеров.

обработка XML в сценарии JS

Все новые темы


Зарегистрирован: 25.04.2006
Пользователь #: 36,264
Сообщения: 141

Добавлено: Пн 17 Сен, 2007 16:36 Заголовок сообщения: обработка XML в сценарии JS
Вернуться к началу
nitrexin
подпись на выбор, в личку sklifу

Зарегистрирован: 14.07.2003
Пользователь #: 7,770
Сообщения: 10623

Голоса: 1

Добавлено: Пн 17 Сен, 2007 16:51 Заголовок сообщения:
Вернуться к началу
snarky
Участник форума

Зарегистрирован: 25.04.2006
Пользователь #: 36,264
Сообщения: 141

Добавлено: Вт 18 Сен, 2007 7:21 Заголовок сообщения:
Вернуться к началу
nitrexin
подпись на выбор, в личку sklifу

Зарегистрирован: 14.07.2003
Пользователь #: 7,770
Сообщения: 10623

Голоса: 1

Добавлено: Вт 18 Сен, 2007 12:08 Заголовок сообщения:
Вернуться к началу
snarky
Участник форума

Зарегистрирован: 25.04.2006
Пользователь #: 36,264
Сообщения: 141

Javascript сценарий, обрабатывающий xml документ, приведенный в приложении 1

jQueryпозволяет частично снизить нагрузку с сервера на клиентское приложение. К тому же, это может помочь сделать ваше приложение более гибким. Естественно, речь не столько о любительских PHP-скриптах, а о применении обработки данных в мощных приложениях, например, SharePoint, WebSphereи т.п., когда для решения локальной задачи проще обойтись подручными средствами, чем создавать и устанавливать отдельное приложение.

Очень частой задачей является отображение на странице данных, которые были получены из RSSили веб-сервиса. С помощью фреймворка jQueryи небольшого кода можно вывести на страницу содержимое XML-файла.

Для примера возьмем кусок кода из Яндекс.Новости и сохраним его в файле news.xml

С помощью небольшого кода можно легко разобрать и вывести на страницу содержимое XML-файла.

Javascript, приведенный выше, нужно вставить в коде HTML-страницы, в корректной работы необходимо наличие тэга .

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Javascript урок 1. Внедрение сценариев в HTML

1. Добавление сценариев Javascript в HTML

Скрипты используются в html-страницах для увеличения функциональности и возможностей взаимодействия с посетителями сайта.

Для добавления сценария на страницу HTML используется дескриптор:

Или сегодня можно использовать упрощенный вариант:

Атрибуты дескриптора:

  • type — атрибут, пришедший на замену language ; он сообщает браузеру, какой язык используется внутри дескрипторов;
  • src — атрибут определяет URL внешнего исходного JavaScript-файла, сценарий которого прикрепляется к html-странице.

Отображение XML-документов с использованием сценариев объектной модели документа

В «Отображение XML-документов с использованием связывания данных» вы познакомились с программной моделью Data Source Object ( DSO ), которая позволяет вам использовать либо связывание данных, либо сценарии для отображения XML -документа с HTML -страницы. DSO хранит данные XML как набор записей, что удобно для отображения только тех XML -документов, которые имеют симметричную структуру записей.

В этой лекции вы узнаете о совершенно иной программной модели, известной как Объектная модель XML -документа, или DOM (Document Object Model ). DOM состоит из группы программных объектов, представляющих различные компоненты XML -документа. Свойства и методы этих объектов позволяют вам использовать сценарии для отображения XML -документа с HTML -страницы. DOM хранит данные в иерархической, древообразной структуре, отражающей иерархическую структуру XML -документа – независимо от того, структурирован ли он как набор записей – и вы можете использовать ее для доступа к любым компонентам XML -документа, включая элементы, атрибуты, инструкции по обработке, комментарии и объявления нотаций и примитивов.

Примечание. Консорциум W3C использует термин Объектная модель документа (Document Object Model, или DOM) для обозначения более широкой объектной модели, которая обеспечивает доступ как к HTML-элементам, так и к XML-документам. (См. спецификацию «Document Object Model (DOM) Level 1 Specification» по адресу http://www.w3.org/TR/REC-DOM-Level-1.) Однако здесь этот термин применяется к обычной модели DOM XML , поддерживаемой Internet Explorer 5 и рассчитанной на доступ конкретно к XML-документам.

В этой лекции вы сначала узнаете, как связывать XML -документ с HTML -страницей, чтобы вы могли получить доступ к документу через DOM . Затем вы познакомитесь с общей структурой DOM и программными объектами, которые в ней содержатся. В начале лекции представлены приемы программирования DOM , демонстрирующие, как отобразить простой XML -документ с фиксированным числом элементов. После этого вы познакомитесь с общими приемами, используемыми для отображения документов, содержащих неизвестное число элементов. Затем вы узнаете о других способах доступа к XML -элементам, а также о способах доступа к атрибутам, примитивам и нотациям. Далее в лекции вам предложено выполнить упражнение, в котором вы создадите DOM — сценарий , позволяющий обрабатывать любой XML -документ и отображать базовую информацию о каждом из его компонентов. В лекции также представлен сценарий , который вы можете использовать для проверки любого XML -документа на корректность формы и валидность .

Связывание XML-документа с HTML-страницей

Чтобы получить доступ к XML -документу с использованием DOM , вы должны связать XML -документ с HTML -страницей. Самый простой способ – сделать это через фрагмент данных. Напомним, что фрагмент данных создается через HTML -элемент с именем XML . Например, следующий элемент BODY HTML -страницы содержит фрагмент данных, который связывает XML -документ, хранящийся в файле Book . xml :

Подробнее о фрагментах данных рассказано в разделе «Шаг первый: установка связи XML -документа с HTML -страницей» в «Отображение XML-документов с использованием связывания данных» .

Идентификатор ID , который вы назначаете фрагменту данных, указывает на DSO документа (см. «Отображение XML-документов с использованием связывания данных» ). Вы можете использовать составляющую XMLDocument DSO для доступа к DOM , как показано в следующей строке кода сценария:

Член XMLDocument содержит корневой объект DOM , известный как узел Document (Document node ). Вы можете использовать узел Document для доступа к другим объектам DOM .

Так, создание фрагмента данных на HTML -странице предписывает Internet Explorer 5 создать как DSO (представленный непосредственно через ID фрагмента данных), так и DOM ( доступ к которой осуществляется через член XMLDocument DSO ).

Подсказка. Если вы хотите иметь доступ к нескольким XML -документам с HTML -страницы, вы можете поместить фрагмент данных для каждого из них. Кроме того, вы можете включить несколько фрагментов данных для одного XML -документа. (Последний прием может оказаться полезным для поддержки нескольких различных версий данных XML , если ваша страница модифицирует содержимое данных DOM , накопленных в памяти. В этой лекции, однако, эти приемы модификации данных DOM не рассматриваются.)

Структура DOM

В DOM программные объекты, представляющие XML -документ, называются узлами. Когда Internet Explorer 5 обрабатывает связанный XML -документ и сохраняет его в DOM , он создает узел для каждого из основных компонентов XML -документов, таких как элементы, атрибуты и инструкции по обработке.


DOM использует различные типы узлов для представления различных типов компонентов XML . Например, элемент хранится в узле Element , а атрибут – в узле Attribute . В таблице 9.1 представлены наиболее важные типы узлов.

Учимся программировать на JavaScript: первое знакомство

Данная статья предназначена для читателей с начальным уровнем подготовки по языку JavaScript. В ней я разберу пример кода (программы) в деталях. Это будет первый и последний пример, в котором будет «разжевана» каждая строчка кода. Далее мы помчимся гало­пом по Европам. Более опытные читатели могут просто мельком взглянуть на эту заметку моего блога и сразу перейти к следующей.

Приготовления к написанию кода JavaScript

Для начала надо определиться, в чем мы будем писать свои примеры. Сцена­рии JavaScript можно писать в любом текстовом редакторе. Существуют тек­стовые редакторы от сторонних разработчиков с более продвинутыми функ­циями, например, подсветкой синтаксиса языка. Я же все свои примеры писал в программе Блокнот, входящем в состав любой Windows. Это самый простой путь, не требующий установки новых программ. Тем более, у вас не будет другого выбора, если у вас нет в данный момент подключения к Ин­тернету или диска с нужными программами, а также прав администратора для установки сторонних программ.

Так как сценарии используются в основном в Web-страницах, то для начала надо эту самую Web-страницу создать. Алгоритм действий следующий. От­крываем папку Мои документы в Проводнике и создаем новую папку — JavaScript в примерах. Далее, открываем созданную папку, щелкаем правой кнопкой мыши на свободном месте и выбираем последовательно пункты контекстного меню Создать | Текстовый документ . В результате наших ма­нипуляций будет создан пустой файл под именем Текстовый документ .txt . Так как Web-страницы имеют расширение htm или html , то щелкаем правой кнопкой мыши на созданном файле, выбираем команду Переименовать и присваиваем файлу новое имя, например, 1.htm. Windows спросит вас, дейст­вительно ли вы хотите присвоить файлу новое расширение. На данный во­прос следует ответить утвердительно. После этого еще раз щелкаем правой кнопкой мыши на измененном файле и выбираем уже команду Изменить. У вас запустится стандартный Блокнот (по умолчанию). Пока он пустой. Вы можете теперь вводить код, приведенный в листинге чуть ниже. Будьте вни­мательны, постарайтесь избежать ошибок.

Первый сценарий JavaScript

По устоявшейся традиции среди программистов первой программой при изу­чении любого языка программирования должно быть приложение, выводя­щее на экран сообщение «Здравствуй, мир!» (или «Hello, world!»). Не будем пренебрегать традициями и напишем наш первый сценарий в этом духе. В уже открытом Блокноте пишем следующее (листинг 1).

Листинг 1. Пишем первый сценарий

Сохраните документ под именем helloworld.htm. Мы пока не будем смотреть написанный сценарий в действии, а получше изучим написанное.

Разбор полетов

Для того чтобы добавить сценарий JavaScript на Web-страничку, используется пара тегов . Данная пара дает указание браузеру рассмат­ривать текст программы как сценарий. Исключение составляют только обра­ботчики событий, где использование команды script не требуется. Здесь стоит немного задержаться. На сегодняшний день существует рекомендация исполь­зовать строчку

Так как по умолчанию считается, что в браузерах используется именно сце­нарий JavaScript, то этот код не вызовет ошибки. Но подобный способ вызы­вает дополнительную нагрузку на браузер, и от такой экономии следует вся­чески воздерживаться.

Как вы уже заметили, сценарии могут размещаться в различных частях доку­мента. Всего способов их размещения четыре:

  • сценарий находится между тегами ;
  • сценарий находится в теле программы после тега ;
  • сценарий находится в обработчиках событий. Данный способ позволяет выполнять сценарий JavaScript при наступлении нужного события;
  • сценарий находится в отдельном файле. JavaScript позволяет создавать собственные файлы с расширением js. В этом случае на странице указы­вается местоположение такого файла. В нашем примере этот способ не использовался.

Таким образом, на одной странице могут располагаться сразу несколько сце­нариев. В какой последовательности браузер будет выполнять эти сценарии? Ничего сложного тут нет. Просто надо запомнить несколько правил. Сначала идет анализ сценария в заголовке документа

Язык XML — практическое введение

О типах данных, которые можно определять с помощью схем, мы поговорим чуть позже

Группировка элементов

Элемент group используется для того, чтобы задать некоторую последовательность вложенных объектов:

Группировка объектов позволяет определять сразу группу объектов различных типов, которые могут находится внутри данного объекта. В приведенном примере мы указали, что внутри объекта типа contacts могут быть включены элементы tel, email , и url , причем атрибутом occurs мы указали, что элементы в группе являются необязательными. Корректным для таких схем будут являться следующие фрагменты документов:

При помощи атрибута groupOrder можно также задавать режим использования группированных элементов При установленном значении OR возможно использование не всех элементов группы, а лишь некоторых из них. Если задано значение AND, то оба элемента должны быть включены в обязательном порядке. Например, для следующей группы правил:

будут считаться правильными только следующие варианты:

Закрытая и открытая модели описания содержимого элемента

Когда мы определяем модель содержимого текущего элемента, список дополнительных допустимых элементов правилами не ограничивается — он может свободно расширяться. Например, для приведенного выше правила, кроме обозначенных элементов , и вполне могут использоваться дополнительные элементы, неописанные правилами, например, :

Однако в том случае, если мы хотим ограничить создаваемые нами правила от включения дополнительных элементов, мы должны использовать атрибут content и установить для него специальное значение CLOSED:

Теперь приведенный фрагмент XML-документа будет считаться некорректным, т.к. параметром content запрещено использование внутри элемента contacts других объектов, кроме указанных в правиле.

Иерархия классов

Для того, чтобы при описании класса ограничить список объектов, которые могут являться родительскими для данного элемента, необходимо использовать элемент схемы domain .

Инструкция указывает, что текущий объект должен определяться строго внутри элемента, заданного этим тэгом. Например, в следующем фрагменте указывается, что элемент может быть определен строго внутри тэга :

Ограничения на значения

Значения элементов могут быть ограничены при помощи тэгов и ;:

Внутри этих элементов могут указываться и символьные ограничения:

Использование правил из внешних схем

Схема может использовать элементы и атрибуты из других схем. Для этого надо использовать атрибут href, в котором указывается название внешней схемы. Например:

Компоненты схем

Компоненты, или макроопределении, используются в схемах точно также, как и в DTD. Для их определения предназначены тэги и ;:

Новосибирский Межотраслевой Региональный Центр Переподготовки Кадров

Типы данных


В разделе, посвященном DTD, мы уже выяснили, для чего программе-клиенту необходима информация о формате данных содержимого элемента. В схемах существует возможность задавать тот или иной тип данных, используя при определении элемента директиву с указанием конкретного типа:

В DTD мы должны были создать атрибут с конкретным названием, определяющим операцию назначения формата данных, и значением, определенным как fixed .Использование элемента позволяет указывать это автоматически, но для обеспечения программной независимости необходимо сначала договориться об обозначениях типов данных(значения, которые должны передаваться параметру dt элемента dataype), для чего могут использоваться, например, универсальные идентификаторы ресурсов URI. В любом случае, как и прежде, все необходимые действия, связанные с конкретной интерпретацией данных, содержащихся в документе, осуществляются программой-клиентом и определяются логикой его работы. В разделе, посвященном DTD, мы уже рассматривали пример XML- документа, реализующего описанные нами возможности. Вот как выглядел бы этот пример при использовании схем данных:

С видом на cеверный полюс

Подводя итог всему сказанному, необходимо отметить, что процесс развития современных информационных систем настолько динамичен, что временной промежуток между появлением новой технологии и ее практическим использованием в реально действующих приложениях сегодня слишком мал. На смену устаревающему стандарту HTML в самое ближайшее время должен будет прийти новый, более гибкий и универсальный язык описания данных. И тот факт, что XML как язык еще не стандартизирован и некоторые его составляющие до сих пор находятся в стадии разработки, видимо, не является причиной невозможности его использования уже сегодня, для решения конкретных задач в реальных системах. Примером этому может служить возникновение огромного количества языков описания документов, некоторые из которых приведены в Приложении

В этой статье были рассмотрены лишь самые основные аспекты, касающиеся новой XML- технологии. В будущем, мы, возможно, остановимся несколько подробнее на производных от XML языках описания данных — SMIL, RDF, MathML, механизмах описания пространства имен и рассмотрим некоторые вопросы, касающиеся создания программ-анализаторов для этих языков.

Сценарии JavaScript в документах HTML

Языки сценариев

Язык сценариев — это язык программирования, используемый для выполнения функций настройки и автоматизации работы какой-либо существующей системы (например, программы просмотра Интернета, Интернет-сервера, операционной системы). Обычно в подобных системах их функциональность уже доступна через интерфейс пользователя. Языки сценариев раскрывают ее для программного управления. При этом немаловажно то, что сама система обеспечивает специальную среду, обычно состоящую из объектов и подпрограмм, которая дополняет возможности языка сценариев.

В операционной системе Windows имеется средство Windows Scripting Host (WSH), предназначенное для программной настройки системы, которое создает специальную среду со специальными объектами, позволяющими программно настраивать операционную систему, создавая файлы сценариев. В этой среде методы автоматически создаваемого объекта WScript позволяют организовать диалог с пользователем, а также создавать объекты из иерархической модели объектов этой среды (например, объект Shell соответствует оболочке операционной системы, в семействе Environment которого хранятся значения всех переменных среды). В качестве языка сценария в WSH можно использовать либо JScript (реализация компанией Microsoft языка JavaScript) или поддерживаемый и разрабатываемый ею же собственный сценарный язык VBScript. Сценарий пишется на любом из указанных языков и сохраняется соответственно в файле с расширением .js или .vbs. Запуск сценария WSH осуществляется двойным щелчком на файле в проводнике Windows.

Пример 1. Сценарий Windows Scripting Host
Создадим в любом текстовом редакторе представленный ниже сценарий WSH на языке JScript и сохраним его в файле с расширением .js. После чего запустим его на выполнение двойным щелчком в проводнике Windows. Со всеми действиями этого сценария можно ознакомиться, прочитав внедренные в текст сценария комментарии. // Отображение диалогового окна с приветствиемWScript.Echo(«Привет!»); text = «»; // Создание объекта Shellshell = WScript.CreateObject(«WScript.Shell») // Присоединение к семейству WScript.Shell.Environment// итератора для организации перебора элементов семействаe = new Enumerator(shell.Environment); // Перебор элементов семейства Environment// и сохранение их значений в переменной textfor ( ; !e.atEnd(); e.moveNext()) < text += e.item() + "\n";>// Отображение полученных значений в диалоговом окнеWScript.Echo(text)

Встроенный в документ HTML сценарий JavaScript имеет доступ к объектной модели обозревателя, в котором этот документ отображается (при условии, конечно, поддержки обозревателем языка сценариев JavaScript и раскрытия своей модели объектов), а также к объектной модели (DOM) самого документа (опять-таки при ее реализации в обозревателе).

Пример 2. Сценарий JavaScript в обозревателе Internet Explorer
Создадим приведенный ниже документ HTML и отобразим его в обозревателе Internet Explorer. Каждый щелчок на кнопке Новое окно документа будет приводить к отображению еще одного окна обозревателя размером 300×50 пикселей, но без строки меню, полос прокрутки, строки состояния, панели инструментов и адресной строки.

Язык JavaScript

Первый язык сценариев, интерпретируемый в среде программы просмотра Интернета (для краткости будет подобную программу иногда называть браузер — от английского browser, используемого для обозначения подобных программ), был разработан в компании Netscape Communications. Встроенный в документ HTML сценарий на этом языке выполнялся в среде браузера Netscape Navigator 2.0, разработанного этой же компанией. Первоначально он назывался LiveScript, отражая его важнейшую функциональность, — встроенный в документ HTML сценарий позволял пользователю в интерактивном режиме «общаться» с отображаемой в браузере страницей. Впоследствии для привлечения внимания к своему детищу компания переименовала его в JavaScript, так как в то время язык Java приобрел такую популярность, что в Сети только о нем и говорили. Сразу же подчеркнем, что с языком Java этот язык не имеет ничего общего, разве лишь синтаксис и семантика операторов принятия решения и цикла. Эти языки разработаны для решения разных задач. Чтобы подчеркнуть этот факт следует сказать, что впоследствии компания Netscape разработала и внедрила в свой язык специальное средство для взаимодействия апплетов Java, встраиваемых в страницу HTML небольших программок, написанных на языке Java и интерпретируемых под управлением виртуальной машины Java, и сценария на языке JavaScript. В процессе своего существования язык JavaScript компании Netscape Communications постоянно изменялся, что отражалось в выпуске очередных версий, приуроченных к выпуску очередной версии браузера этой компании:

Поддержка JavaScript в браузерах Netscape

Версия браузера Версия языка
Netscape 2.0 1.0
Netscape 3.0 1.1
Netscape 4.0 1.2
Netscape 4.5 1.3
Netscape 4.7 1.4
Netscape 6.0 1.5

Не желая отставать от своего тогдашнего конкурента компания Microsoft выпустила собственный вариант языка JavaScript под названием JScript. Он также прошел ряд версий, соответствие которых браузеру этой компании представлено в следующей таблице:

Поддержка JavaScript в браузерах Internet Explorer

Версия браузера Версия языка
Internet Explorer 3.0 1.0
Internet Explorer 4.0 3.0
Internet Explorer 5.0 5.0
Internet Explorer 5.5 5.5
Internet Explorer 6.0 5.6

Следует отметить, что свой язык JScript компания Microsoft использовала не только в браузере, но и в других своих продуктах.

Разработка языков происходила без какого-либо взаимодействия двух компаний в режиме соревнований, что привело к известной «войне браузеров». Однако впоследствии здравомыслие восторжествовало и в 1996 году компании договорились о разработке единого стандарта под эгидой Европейской ассоциации производителей компьютеров (ECMA). И в июле 1997 года появился новый язык, получивший название ECMAScript. Сегодняшние последние версии языков JavaScript компаний Netscape Communications и Microsoft полностью соответствуют последнему стандарту языка ECMAScript, известному под названием ECMA-262, редакция 3 от 1999 г.

Задачи, решаемые с помощью встроенных в документ HTML сценариев JavaScript:

· динамическое создание содержимого документа HTML во время его загрузки в браузер;

· оперативная проверка достоверности заполняемых пользователем полей форм HTML до передачи их на сервер;

· создание динамических страниц HTML совместно с каскадными таблицами стилей и объектной моделью документа;

· взаимодействие с пользователем при решении «локальных» задач, реализуемых приложением JavaScript, встроенном в страницу HTML.

Дата добавления: 2020-02-11 ; просмотров: 617 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Javascript сценарий, обрабатывающий xml документ, приведенный в приложении 1

9. Лекция: Отображение XML-документов с использованием сценариев объектной модели документа

В восьмой лекции вы познакомились с программной моделью Data Source Object (DSO), которая позволяет вам использовать либо связывание данных, либо сценарии для отображения XML-документа с HTML-страницы. DSO хранит данные XML как набор записей, что удобно для отображения только тех XML-документов, которые имеют симметричную структуру записей.

В этой лекции вы узнаете о совершенно иной программной модели, известной как Объектная модель XML-документа, или DOM (Document Object Model). DOM состоит из группы программных объектов, представляющих различные компоненты XML-документа. Свойства и методы этих объектов позволяют вам использовать сценарии для отображения XML-документа с HTML-страницы. DOM хранит данные в иерархической, древообразной структуре, отражающей иерархическую структуру XML-документа – независимо от того, структурирован ли он как набор записей – и вы можете использовать ее для доступа к любым компонентам XML-документа, включая элементы, атрибуты, инструкции по обработке, комментарии и объявления нотаций и примитивов.

Примечание. Консорциум W3C использует термин Объектная модель документа (Document Object Model, или DOM) для обозначения более широкой объектной модели, которая обеспечивает доступ, как к HTML-элементам, так и к XML-документам. (См. спецификацию «Document Object Model (DOM) Level 1 Specification» по адресу http://www.w3.org/TR/REC-DOM-Level-1.) Однако здесь этот термин применяется к обычной модели DOM XML, поддерживаемой Internet Explorer и рассчитанной на доступ конкретно к XML-документам.

В этой лекции вы сначала узнаете, как связывать XML-документ с HTML-страницей, чтобы вы могли получить доступ к документу через DOM. Затем вы познакомитесь с общей структурой DOM и программными объектами, которые в ней содержатся. В начале лекции представлены приемы программирования DOM, демонстрирующие, как отобразить простой XML-документ с фиксированным числом элементов. После этого вы познакомитесь с общими приемами, используемыми для отображения документов, содержащих неизвестное число элементов. После этого вы узнаете о других способах доступа к XML-элементам, а также о способах доступа к атрибутам, примитивам и нотациям. Далее в лекции вам предложено выполнить упражнение, в котором вы создадите DOM-сценарий, позволяющий обрабатывать любой XML-документ и отображать базовую информацию о каждом из его компонентов. В лекции также представлен сценарий, который вы можете использовать для проверки любого XML-документа на корректность формы и валидность.

Ссылка. Для получения более подробной информации о DOM обратитесь к двум Web-страницам, предлагаемым Microsoft Developer Network (MSDN): «XML DOM User Guide» по адресу http://msdnmicrosoft.com/xml/xmlguide/dom-guide-overview.asp и «XML DOM Reference» по адресу http://msdn.microsoft.com/xml/reference/xmldom/start.asp.

Связывание XML-документа с HTML-страницей

Чтобы получить доступ к XML-документу с использованием DOM, вы должны связать XML-документ с HTML-страницей. Самый простой способ – сделать это через фрагмент данных. Напомним, что фрагмент данных создается через HTML-элемент с именем XML. Например, следующий элемент BODY HTML-страницы содержит фрагмент данных, который связывает XML-документ, хранящийся в файле Book.xml:

Подробнее о фрагментах данных рассказано в разделе «Шаг первый: установка связи XML-документа с HTML-страницей» в лекции 8.

Идентификатор ID, который вы назначаете фрагменту данных, указывает на DSO документа (см. лекцию 8). Вы можете использовать составляющую XMLDocument DSO для доступа к DOM, как показано в следующей строке кода сценария:

Член XMLDocument содержит корневой объект DOM, известный как узел Документ (Document node). Вы можете использовать узел Документ для доступа к другим объектам DOM.

Так, создание фрагмента данных на HTML-странице предписывает Internet Explorer создать как DSO (представленный непосредственно через ID фрагмента данных), так и DOM (доступ к которой осуществляется через член XMLDocument DSO).


Подсказка. Если вы хотите иметь доступ к нескольким XML-документам с HTML-страницы, вы можете поместить фрагмент данных для каждого из них. Кроме того, вы можете включить несколько фрагментов данных для одного XML-документа. (Последний прием может оказаться полезным для поддержки нескольких различных версий данных XML, если ваша страница модифицирует содержимое данных DOM, накопленных в памяти. В этой лекции, однако, эти приемы модификации данных DOM не рассматриваются.)

Структура DOM

В DOM программные объекты, представляющие XML-документ, называются узлами. Когда Internet Explorer обрабатывает связанный XML-документ и сохраняет его в DOM, он создает узел для каждого из основных компонентов XML-документов, таких как элементы, атрибуты и инструкции по обработке.

DOM использует различные типы узлов для представления различных типов компонентов XML. Например, элемент хранится в узле Element, а атрибут – в узле Attribute. В таблице 9.1 представлены наиболее важные типы узлов.

Таблица 9.1. Основные типы узлов, используемых для представления различных компонентов XML-документа.

Компоненты XML-документа, представляемые узлом

Имя узла (свойство nodeName объекта)

Значение узла (свойство nodeValue объекта)

Корневой узел иерархии документа (т. е. он представляет весь XML-документ)

Имя типа элемента (например, BOOK)

null (любые символьные данные, содержащиеся в элементе, находятся в одном или нескольких дочерних узлах Text)

Текст, принадлежащий элементу, атрибуту или примитиву, которые представлены родителем этого узла

Текст родительского XML-компонента

Атрибут (а также другие пары имя-значение, такие как имя и значение в инструкции по обработке)

Имя атрибута (например, Binding)

Значение атрибута (например, hardcover)

Инструкция по обработке (объявление XML или пользовательская инструкция по обработке)

Предназначение инструкции по обработке (например, xml)

Полное содержимое инструкции по обработке, за исключением предназначения (например, version=»1.0″)

Весь текст внутри ограничителей комментария

Содержимое раздела CDATA

Объявление типа документа

Имя корневого элемента, содержащееся в объявлении DOCTYPE (например, INVENTORY)

Объявление примитива в DTD

Имя примитива (например, image)

null (значение примитива содержится в дочернем узле Text)

Объявление нотации в DTD

Имя нотации (например, BMP)

null (системный литерал нотации содержится в дочернем узле Attribute с именем SYSTEM)

Вы можете получить каждое из имен узлов (они приведены в третьем столбце) из свойства узла nodeName. Имена, начинающиеся с символа #, представляют компоненты XML, не поименованные в документе. (Например, комментарий в XML-документе не обладает именем. В связи с этим DOM использует стандартное имя #comment.) Другие имена узлов получаются из имен, присвоенных соответствующим компонентам в XML-документе. (Например, узел Element, представляющий элемент типа BOOK, также должен носить имя BOOK.)

Вы можете получить каждое из значений узла (перечисленные в последнем столбце) из свойства узла nodeValue. Если компонент XML имеет соответствующее значение (например, атрибут), это значение будет храниться в значении узла. Если компонент XML не имеет значения (например, элемент), DOM устанавливает в качестве значения узла null. Подробнее о большинстве типов узлов, перечисленных в таблице 9.1, вы узнаете далее в этой лекции.

DOM организует узлы XML-документа в виде древообразной иерархической структуры, которая отражает иерархическую структуру самого документа. При этом создается единственный узел Document, который представляет весь XML-документ и служит корневым элементом в этой иерархии. Заметим, что логическая иерархическая структура элементов XML, в которой элемент Документ является корневым, это лишь одна из ветвей иерархической структуры узлов DOM, которые представляют весь документ.

Возьмем, например, XML-документ из Листинга 9.1. Этот документ состоит из объявления XML, комментария и корневого элемента, который включает дочерние элементы, а также атрибуты. На рисунке 9.1 показана иерархическая организация узлов, которые создает DOM для представления документа. Для каждого компонента рассматриваемого документа на рисунке указан тип узла, используемого для представления компонента (например, Document, Comment и Element), а также имя узла (оно указано в скобках – например, #document, #comment и INVENTORY).

Листинг 9.1. Inventory Dom.xml

Каждый узел, как программный объект, имеет свойства и методы, которые позволяют вам осуществлять доступ, отображать, обрабатывать и получать информацию о соответствующем компоненте XML. Например, свойства nodeName и nodeValue (см. таблицу 9.1) дают имя компонента и его значение.

Все типы узлов используют общий набор свойств и методов. Эти свойства и методы разработаны для работы с узлами вообще. В таблице 9.2 представлены некоторые наиболее полезные свойства. Более подробную информацию и примеры использования этих свойств вы найдете далее в этой лекции.

Таблица 9.2. Некоторые полезные свойства, поддерживаемые всеми типами узлов

Множество NamedNodeMap всех дочерних узлов-атрибутов данного узла

AttributeNode = Element.attributes.getNamedItem («Binding»);

Множество NodeList всех дочерних узлов, не являющихся атрибутами, данного узла


FirstNode = Element.childNodes (0);

Тип данных этого узла (применительно только к определенным типам узлов Attribute)

Первый дочерний узел данного узла, не являющийся атрибутом

Последний дочерний узел данного узла, не являющийся атрибутом

Следующий узел на том же уровне данного узла

Имя данного узла

Цифровой код, указывающий на тип данного узла

Строка, содержащая тип данного узла, строчными буквами (например, «element» или «attribute»)

Значение данного узла (или null, если он не содержит значения)

Корневой узел Document документа, содержащего данный узел

Узел, для которого данный узел является дочерним (не действует для узла Attribute)

Предыдущий узел на том же уровне данного узла

Все текстовое содержимое данного узла и все подчиненные узлы Element

Все содержимое XML данного узла и все его подчиненные узлы

Подсказка . Если вы хотите познакомиться со всеми свойствами, методами и событиями, принадлежащими различным типам объектов-узлов, обратитесь к следующей Web-странице, предоставленной MSDN: http://msdn.microsoft.com/xml/reference/scriptref/xmldom_Objects.asp. Обратите внимание, что на этой странице каждому имени узла, которые приведены в Таблице 9.1, предшествует префикс XMLDOM – например, XMLDOMDocument, XMLDOMElement и XMLDOMText. (Это имена программных интерфейсов для каждого типа узла.) Обратите внимание также, что общие свойства и методы узлов представлены под именем XMLDOMNode.

Помимо общих свойств и методов, каждому типу узла присущи дополнительные свойства и методы, разработанные для работы с определенным XML-компонентом, который представляет узел. Например, узел Document имеет свойство parseError, которое содержит информацию о любой ошибке, возникающей в процессе обработки документа. Данное свойство присуще только узлу Document. Далее в этой лекции вы познакомитесь с таблицей 9.3, в которой представлены наиболее полезные свойства и методы для некоторых типов узлов.

Подсказка . Свойство будет иметь значение null, если данное свойство не применимо к определенному узлу. Например, если узел представляет XML-компонент, который не имеет атрибутов (например, узел Document или Comment), его свойство attributes будет иметь значение null. Если узел представляет XML-компонент, который не имеет типа данных (тип данных имеют только определенные атрибуты), его свойство dataType будет иметь значение null. Если узел не имеет дочернего узла, не являющегося атрибутом, его свойство firstChild будет иметь значение null. Если узел относится к типу, который не имеет значений (например, узел Document или Element), его свойство nodeValue также будет иметь значение null

Обратите внимание в таблице 9.2, что каждый узел обладает набором свойств, которые позволяют вам перемещаться в иерархии узла – т. е. получать доступ к другим узлам от текущего узла. Например, рассмотрим документ из Листинга 9.1. Если переменная Document содержит корневой узел Document, следующий код приведет к отображению содержимого комментария, расположенного в начале документа (этот комментарий DOM хранит как второй дочерний узел узла Document):

Эта строка вызовет отображение сообщения, содержащего текст «Имя файла: Inventory Dom.xml».

В предыдущем разделе вы узнали, как осуществлять доступ к корневому узлу Document через член XMLDocument DSO, который получается из фрагмента данных XML. Узел Document является шлюзом к XML-документу. Вы можете использовать его для доступа к другим узлам. В последующих разделах вы познакомитесь с особыми способами доступа к узлам.

Доступ и отображение элементов XML-документа

В этом разделе вы познакомитесь с основными приемами использования HTML-страницы и DOM для отображения элементов XML-документа. Эти приемы демонстрируются в Листингах 9.2 и 9.3.

Листинг 9.2. Book.xml

Листинг 9.3. DomDemo Fixed.htm

Листинг 9.2 содержит простой XML-документ, который описывает одну книгу. Его корневой элемент, BOOK, содержит пять дочерних элементов (TITLE, AUTHOR, BINDING, PAGES и PRICE), каждый из которых содержит символьные данные, описывающие характеристики книги.

Листинг 9.3 содержит HTML-страницу, которая отображает содержимое каждого из дочерних элементов в XML-документе. На рисунке 9.2 показано как эта страница выглядит в Internet Explorer.

XML-документ связан со страницей через следующий фрагмент данных:

Страница отображает XML-документ посредством следующего блока кода сценария, который содержится в элементе HEAD страницы:

Установки атрибутов FOR=»window» и EVENT=»ONLOAD» предписывают браузеру выполнять код из элемента SCRIPT при первом открытии окна страницы до того, как будет отображено содержимое страницы.

Ссылка . Примеры сценариев в этой лекции написаны на языке Microsoft JScript – версии Microsoft родового языка для сценариев JavaScript. Полную информацию о JScript, включая учебник, вы можете найти на следующих Web-сайтах, предоставленных MSDN: http://msdn.microsoft.com/workshop/c-frame.htm#/workshop/languages/jscript/handling.asp и http://msdn.microsoft.com/scripting/default.htm?/scripting/jscript/default.htm.

Сценарий первым делом получает узел Document, который представляет весь документ и формирует корневой элемент иерархии узлов DOM. Он делает это через член XMLDocument DSO, как было описано ранее в этой лекции:

Далее сценарий получает доступ и отображает символьные данные, содержащиеся в каждом из дочерних элементов корневого элемента (TITLE, AUTHOR, BINDING, PAGES и PRICE). Например, он отображает содержимое первого дочернего элемента (TITLE) следующим образом:

Вот пояснение выражения, стоящего справа от знака равенства.

Document содержит узел Document в основании (корне) иерархии узлов DOM.

documentElement представляет собой свойство узла Document. Оно содержит узел Element, представляющий корневой элемент XML-документа – в нашем примере, BOOK.

Примечание . Свойство documentElement является одним из специфических для конкретного узла свойств, предоставляемых узлом типа Document. В таблице 9.3 представлены другие полезные свойства, а также методы, относящиеся к узлу Document. Имейте в виду, что для узла Document вы можете использовать и общие свойства узлов, представленные в таблице 9.2.

childNodes является свойством узла Element для корневого элемента. Оно содержит множество всех дочерних узлов корневого узла Element, не являющихся атрибутами. В нашем примере оно содержит узлы Element для пяти дочерних XML-элементов: TITLE, AUTHOR, BINDING, PAGES и PRICE. Выражение childNodes(0) ссылается на первый из этих дочерних узлов (а именно, на элемент TITLE).

Примечание. В рассматриваемом примере страницы (Листинг 9.3) вы можете использовать выражение Document.childNodes(2), чтобы получить доступ к узлу корневого элемента. (Выражение Document.childNodes(0) относится к узлу XML-объявления, а выражение Document.childNodes(1) относится к узлу комментария.) Однако преимущество использования свойства documentElement узла Document заключается в том, что его значение не зависит от положения корневого элемента внутри XML-документа. Например, если бы вы удалили комментарий в начале документа, либо если бы добавили объявление типа документа, выражение Document.childNodes(2) больше не представляло бы корневой элемент.

text является свойством узла, возвращаемого выражением childNodes(0). Оно предоставляет весь текст, содержащийся в этом узле, а также текст, принадлежащий любому подчиненному узлу Element. В нашем примере TITLE не имеет подчиненных элементов, поэтому свойство text содержит только собственно текст элемента TITLE, «The Adventures of Huckleberry Finn».>

Примечание . Свойства childNodes и text относятся к общим свойствам узлов (см. таблицу 9.2).

Таблица 9.3. Полезные свойства и методы, предоставляемые узлами Document. Общие свойства приведены в таблице 9.2

Илон Маск рекомендует:  Realloc переразместить блок памяти
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL