русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

XML_документы в островках данных


Дата добавления: 2015-07-09; просмотров: 526; Нарушение авторских прав


 

Компания Microsoft расширила язык разметки HTML новым тегом <xml>, с по_ мощью которого создаются островки данных в формате XML в окружающем их «море» HTML_разметки. Когда IE встречает тег <xml>, он интерпретирует его как отдельный XML_документ, который можно извлечь методом document.getEle_ mentById() или другими DOM_методами языка HTML. Если в теге <xml> определен атрибут src, тогда вместо того, чтобы анализировать содержимое тега <xml>, XML_документ загружается с URL_адреса, указанного в этом атрибуте.

 

Если для работы веб_приложения необходимы XML_данные и эти данные заранее известны, определенно есть смысл включить их прямо в HTML_страницу: данные будут доступны сразу же, и приложению не потребуется устанавливать новое со_


 

21.1. Получение XML*документов
   

 

единение, чтобы их загрузить. Островки XML_данных – удобные объекты для этого. Существует возможность эмулировать островки данных в IE и в других броузерах с помощью программного кода, который приводится в примере 21.5.

 

Пример 21.5. Извлечение XML'документа из островка данных

/**

* Возвращает объект Document, в котором хранится содержимое тега <xml>

* с заданным идентификатором. Если тег <xml> имеет атрибут src, тогда

* выполняется загрузка документа с этого URL_адреса.

*

* Поскольку островки данных часто используются неоднократно, данная

* функция кэширует возвращаемые документы.

*/

 

XML.getDataIsland = function(id) { var doc;

 

// Сначала проверить кэш

 

doc = XML.getDataIsland.cache[id]; if (doc) return doc;

 

// Найти требуемый элемент

doc = document.getElementById(id);

 

// Если определен атрибут "src", загрузить документ с указанного URL_адреса var url = doc.getAttribute('src');



 

if (url) {

doc = XML.load(url);

}

// В противном случае, если атрибут src отсутствует, документ, который

// следует вернуть, содержится внутри тега <xml>. В Internet Explorer

// в переменной doc уже будет ссылка на требуемый объект документа.

// В других броузерах переменная doc ссылается на HTML_элемент, и нам

 

// нужно скопировать содержимое этого элемента в новый объект документа else if (!doc.documentElement) {// Если это еще не документ...

 

// Прежде всего, нужно найти элемент документа в теге <xml>.

// Это будет первый дочерний элемент тега <xml>, не являющийся текстом,

// комментарием или исполняемой инструкцией

 

var docelt = doc.firstChild; while(docelt != null) {

 

if (docelt.nodeType == 1 /*Node.ELEMENT_NODE*/) break; docelt = docelt.nextSibling;

}

 

// Создать пустой документ doc = XML.newDocument();

 

// Если узел <xml> имеет какое_то содержимое, импортировать его в новый документ if (docelt) doc.appendChild(doc.importNode(docelt, true));

 

}

 

// Поместить документ в кэш и вернуть его XML.getDataIsland.cache[id] = doc;

return doc;

};

XML.getDataIsland.cache = {}; // Инициализация кэша


 

524 Глава 21. JavaScript и XML

Этот программный код не совсем точно моделирует островки XML_данных в бро_ узерах, не относящихся к IE. HTML_стандарты требуют, чтобы броузеры не вы_ полняли синтаксический разбор неизвестных им тегов (а просто их игнорирова_ ли). Это означает, что броузеры не уничтожают XML_данные, расположенные в теге <xml>. Но это также означает, что любой текст, содержащийся в островках данных, по умолчанию будет отображаться броузером. Самый простой способ пре_ дотвратить это заключается в использовании следующей таблицы CSS_стилей:

 

<style type="text/css">xml { display: none; }</style>

 

Другая несовместимость с не относящимися к IE броузерами связана с тем, что они интерпретируют содержимое островков данных как HTML_текст, а не как XML_текст. Если, к примеру, воспользоваться сценарием из примера 21.5 в бро_ узере Firefox и затем сериализовать получившийся документ (как это сделать, показано в этой главе далее), можно обнаружить, что имена тегов преобразова_ ны в верхний регистр, поскольку Firefox предполагает, что имеет дело с HTML_ тегами. В большинстве случаев это не вызывает проблем, но в некоторых случа_ ях может стать источником неприятностей. Наконец, следует заметить, что про_ странства имен будут разрушены, если броузер интерпретирует XML_теги как HTML_теги. Это означает, что островки XML_данных не подходят для хранения таблиц XSL_стилей (более подробно об XSL будет рассказываться в этой главе да_ лее), поскольку эти таблицы всегда используют пространства имен.

 

Если вы хотите воспользоваться преимуществами, которые дает включение XML_данных непосредственно в HTML_страницу, но не желаете бороться с несо_ вместимостью броузеров из_за наличия островков XML_данных в тегах <xml>, то_ гда вам следует рассмотреть возможность включения в страницу XML_докумен_ тов в виде JavaScript_строк, которые затем можно преобразовать в документы с помощью программного кода, приводившегося в примере 21.4.

 



<== предыдущая лекция | следующая лекция ==>
Синтаксический анализ текста XML_документа | Модели XML DOM и HTML DOM


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.185 сек.