Основи XML. Перетворення XML-HTML. Використання JavaScript. Версії 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 - бойові дії готівки А і S. Gallen

9000

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

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

Трьох людей в бойові.

Наберіть цей текст у будь-якому редакторі та збережіть його як простий текстовий файлз розширенням 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

Наша перша мова в XML-технології

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

функція 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