Тарифы Услуги Сим-карты

Версии XML. Отображение xml во Всемирной паутине

Для того, чтобы автоматом преобразовывать содержимое xml-файлов в удобочитаемый вид/формат (html, rtf, pdf, txt, vrml, svg, java и т.д.) - следует воспользоваться XSLT, вместо того, чтобы стараться применить CSS.

Недостатки CSS:
1. CSS не может изменить порядок следования элементов в xml-документе. Если вы захотите отсортировать некоторые элементы или отфильтровать их по некоторому свойству, то CSS вам в этом однозначно не помощник.
2. CSS не выполняет вычисления. Если вы захотите вычислить и вывести значение(например, просуммировать числовые значения всех элементов в xml-документе), CSS вам не подойдёт.
3. CSS не может объединять документы. Если вы захотите объединить пару десятков xml-документов с заказами на покупку и напечатать сводку всех заказанных товаров, то CSS вам опять же не поможет.

Маленький пример использования XSL

Имеется некоторый xml-файл настроек плагина:


Плагин контролирует настройки слоёв чертежей AutoCAD. Ниже представлена таблица, в которой перечислены проверяемые позиции.

Проверка имени слоя
true
Проверка имени слоя на соответствие правилу построения имён

Проверка цвета слоя
true
Проверка на то, чтобы слою назначались цвета из палитры "Index Color"

Проверка типа линии
true
Проверка на то, чтобы слоям назначались типы линий только из определённого набора

Проверка толщин линий
true
Проверка на то, чтобы слоям назначались толщины линий только из определённого набора

Проверка наличия примечания
true
Каждый слой должен иметь примечание, расшифровывающее его назначение

Фиксированный набор слоёв
false
Следует ли запретить пользователям создавать дополнительные слои, по установленным в Стандарте правилам

Плагин должен считывать с него настройки и работать в соответствии с ними. В то же время должна присутствовать некая документация, которую бы юзер мог прочитать и понять. Причём материал, изложенный в документации должен соответствовать тем настройками, которые установлены в текущий момент. Для того, чтобы не держать в голове, что после того, как подправишь настройки, нужно лезть и править документацию, можно всё это представить в виде одного xml-файла. Плагин будет читать из него настройки, а юзер - открывать его в браузере и... видеть его в "человеческом" виде... Для этого создаём файл styleSheet.xsl с таким содержимым:

Настройки плагина

Параметр Значение Примечание

Теперь, если юзер в браузере откроет наш xml-файл, то он увидит не запутанный (с его точки зрения), неудобный xml-текст, а это:

В данном примере я не показывал выборки, сортировки, фильтрации, различного рода операции и вычисления (они тут были не нужны), но при необходимости всё это можно делать средствами XSLT.

Цель занятия

Знакомство с технологией XML. Изучение возможности представления документов XML в HTML. Использование скриптов JavaScript для навигации по таблице XML и организации поиска данных по условию. Рекомендуемая литература .

Краткие теоретические сведения

Технология XML (eXtensible Markup Language) была создана в конце 90-х годов прошлого столетия. Основные достоинства текста XML:

□ имеет структуру базы данных, доступен ЭВМ и человеку;

□ удобно обрабатывается средствами современных языков программирования;

□ легко переводится в HTML.

Рассмотрим следующий пример текстовой базы данных, написанной на XML:

Three men in the boat

Jerom-K-Jerom

12000

Notre Domme de Paris

V.Hugo

15000

А War and Peace

L.Tolstoy

16500

Angelika - the misstress of ghosts А and S. Gallen

9000

Это пример правильно составленного документа XML, элементами которого являются теги , , , , ,

Элементы в тексте расположены по типу дерева с головным элементом . Каждьтй элемент имеет сопряженный с ним закрывающий элемент. Область действия каждого элемента ограничена открывающим и закрывающим элементами. Не допускается пересечения области действия элементов, т. e. области либо вложены одна в другую, либо вовсе не пересекаются. Элемент , область действия которого содержит области действия всех других элементов, называется корневым. XML-документ можно рассматривать как текстовую базу данных. Значением элемента является информация, помещенная между тегами, определяющими данный элемент. Так, значением первого элемента является строка

Three men in the boat.

Наберите этот текст в любом редакторе и сохраните его как простой текстовый файл с расширением xml - например, дайте этому файлу имя textbd.xml. Можно просмотреть этот файл браузером Internet Explorer так же, как вы просматривали HTML-файлы. В случае ошибки интерпретатор XML выдаст подробную информацию о дислокации и сути ошибки.

Теперь покажем, как перевести этот вывод в табличную форму HTML, что выполняется средствами HTML. Создадим следующий файл HTML (листинг 2.12).

Листинг 2.12. HTML-документ для отображения таблицы XML

The Book Title

The author

The price

Сохраним этот HTML-файл под именем textbd.html. Теперь откроем его браузером. Результат будет таким (рис. 2.9).

Рис. 2.9. Отображение документа XML в документе HTML

Для подключения созданного ранее XML-файла и связывания его с таблицей используются теги:

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

Тег используется в качестве контейнера. Параметр DATAFLD содержит значение отображаемого элемента XML.

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

Листинг2.13. Модифицированный HTML-документ для отображения таблицы XML

Our first lesson in xml-technology

The Book Title

The author

The price

>

<

Терм > используется для прорисовки стрелки вправо, терм &it - стрелки влево. При этом указываем, что нужно отображать только две записи в таблице:

Теперь создадим для нашего сайта функциональное наполнение. Его смысл будет заключаться в том, что будем вводить название книги целиком или какие-то его фрагменты, и по нажатию кнопки система должна выдавать другие реквизиты книги: автора и цену либо сообщать, что книга не найдена. Теперь понадобится привлечь JavaScript. Собственно потребуется всего несколько команд.

□ getElementByTagName("title").item(i).text;

Эта команда возвращает значение элемента из XML-файла, который является i-м по порядку перечисления этих элементов .

□ getElementsByTagName("title").length;

Эта команда возвращает общее число элементов из ХМ L-документа.

□ String.indexOf(stringl);

Эта команда возвращает позицию, с которой строка stringi входит в строку string либо -i, если вхождений нет.

Теперь приведем расширенный HTML-код для этой задачи (листинг 2.14).

Листинг2.14. Расширенный HTML-документ для отображения таблицы XML

function showelement()

// Подключение XML-документа:

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

odoc.async=false; // Приостановка программы,

// пока загрузка не завершится odoc.load("textbd.xml"); // Загрузка XML-документа в память var stringl=document.myform.mytext.value; z=odoc.getElementsByTagName("title").length;// Получение

// длины элемента // с тегом //

for(i=0;i