Побудова сайтів за допомогою xml xslt

Завдання зробити сайт ефективним зазвичай закінчується його автоматизацією. Для цього web-сторінки розбивають на складові частини. Документ в такому випадку зберігається окремо від програмної частини, що забезпечує його подання у віконці браузера.

Для автоматизації використовують мови опису сценаріїв, що вбудовуються в web-сторінках. Наприклад до недавнього часу я використовував для цих потреб PHP - мова дуже простий і досить потужний, хоча для того щоб організувати спільну роботу кількох людей доведеться створювати загальний інструментарій (за допомогою якого окремі шматочки сайту починають працювати як єдине ціле), соглассовивать дизайн кожної сторінки, і безліч інших дрібних нюансів не мають ніякого відношення до контенту сайту (то про що ви збираєтеся розповісти світу).

Звичайно зручності в такому сайті замало, в чому я власне і переконався коли сайт став важко керований. Почалися пошуки якихось пакетів, які допоможуть приборкати моє творіння. Але все пакети, які мені траплялися були дуже незручні у використанні, і в них я не знайшов того, що так довго шукав. Хоча деякі вже давно знайшли саме те, що я виявив тільки недавно.

Тут все-таки з'ясовується що є у XML якийсь свій мова стилів, але якийсь не такий, а точніше зовсім не такий як CSS. Він був набагато складніше. XSLT не відповідає за забарвлення і форму шрифтів, таблиць та іншого барахла, він виконує ті функції, які раніше виконувалися на PHP або іншому скриптовій мовою при шаблонізаціі сайту.

Взагалі зручно, але навіть на тих браузерах що здатні працювати з XML і XSLT, інтерпретується XSLT неоднозначно. Для того щоб пережити важкі часи я використовую PHP. Але оскільки в PHP підтримка XML і XSLT здійснюється лише на рівні експериментів, довелося активізувати модулі розширення PHP.

Для початку скачайте і встановіть бінарники sablotron, iconv і expat c сайту Тут. Саблотрон бажано версії не нижче 0.96, інакше на нормальну підтримку кирилиці без додаткових рухів тіла не сподівайтеся.

Взагалі-то можна активувати тільки останній, але деякі часто Всречается в мережі скрипти використовують перший модуль. Ці модулі пов'язують встановлений до цього Sablotron і Expat c PHP. Щоб модулі успішно знайшлися після перезавантаження web-сервера, потрібно змінити ще один рядок в розділі:


Налаштуйте параметр:
extension_dir = ./extensions/

Передбачається що операційна система здатна самостійно знайти PHP, тому додайте його в дорозі, якщо цього ще не зроблено. Тепер можна зберегти ini-файл в потрібному місці. Ніяких змін в роботі улюбленого сервера Apache ви помітити не повинні до оновлення вікна браузера.

Тепер поговоримо власне про спосіб, яким можна змусити браузер Opera 6 або Netscape Navigator 4.7 працювати з XML-сайтом.

Для початку зайдіть на сайт. і візьміть c нього найсвіжішу версію цієї збірки. У цьому архіві має лежати кілька вкладених архівів. Знайдіть хостел, що називається class_xslt.tgz (не бійтеся, навіть WinRAR їх відкриває). Тепер у вас є скрипт, який стане в нагоді нам надалі (в архіві є всі необхідні пояснення по використанню; потрібно лише трохи розуміти англійську мову).

Тепер, якщо ви все правильно зробили, можна приступати безпосередньо до перекладу сайту з PHP на рейки XML / XSLT. Весь інструментарій, який є вже в нашому розпорядженні дозволить зробити це безболісно, ​​розтягнувши за часом на стільки, на скільки це буде необхідно.

Почнемо по кроках. У мене був сайт, побудований (частково він ще таким і залишився) з окремих шматочків ( "голова", "хвіст", все як завжди). В окремому файлі знаходилися функції "голови" і "хвоста". Кожен файл документа перебував окремо і виглядав приблизно так:

Щоб адаптувати такий файл під нові вимоги скористайтеся скриптом, який ми з вами вже скачали.

Додайте class_xslt.php в кореневій папці вашого сайту. Тепер необхідно перетворити наявні у вашому "lib.inc.php" (у вас він напевно по іншому називається) "голову" і "хвіст" в один шаблон. Це робиться дуже просто, але оскільки серед вас робити це мало хто вміє, то я вам трошки допоможу:

Тепер наш перший файл стилів XSLT повністю готовий до роботи. Як ви помітили описані тут вставки рятують від постійного головного болю при спільній роботі і підтримки сайту жорстко регламінтіруя структуру документа.

На основі нашого прикладу напишемо документ XML. Скористаємося рядками, які несуть смислове навантаження:


Щоб вона у нас вийшла саме такою заглянемо в XSLT і зрозуміємо що треба трохи змінити ці рядки при перенесенні їх в XML-документ:

Тепер, коли майже всі складові частини майбутньої сторінки готові можна трохи побавитися, і подивитися як же все-таки буде виглядати XML на практиці. Для цього досить у документ XML перед тегом додати наступну сходинку:

де article.xsl - написаний стиль.

Щоб особливо не переживаючи дожити до кращих часів будемо аналізувати довільні XML-файли через вже налаштоване нами розширення PHP. За допомогою Sablotron (це xslt-парсер; Expat - відповідно xml-парсер) всі браузери, які звертаються до нашого сервера будуть отримувати чистий код HTML. В результаті такої сайт буде працювати навіть на самих "відсталих" браузерах.

Отже, замінюємо старий код сторінки welcome.php.

Ось мабуть і все.
При бажанні можна отримати сайт, зовні нічим не відрізняється від існуючого до цього.

Схожі статті