Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Веб-разработка? Это просто! XML+XSLT на примере XML-погоды от gismeteo.ru


XML+XSLT на примере XML-погоды от gismeteo.ru

Итак, выполняя свое обещание, публикую статью, посвященную отображению информера погоды gismeteo.ru.

Как вы помните, в прошлый раз в статье Парсинг XML в JavaScript на примере XML-погоды от gismeteo.ru мы написали длинный (в нескольких местах запутанный и непонятный) скрипт на JavaScript, который радостно преобразовывал XML-Данные от ГИС-метео в HTML-формат, который мы и отображали в нашем браузере.

Этот вариант имел ряд недостатков: 1) При отключенном JavaScript в браузере пользователя мы вообще ничего не увидим. 2) Шаблоны, используемые в этом скрипте были настолько запутанные, что иногда и я сам терялся в том, что значит каждый из тегов этого шаблона. 3) И вообще это не модно и несовременно!

Ведь есть технология лучше: XML+XSLT !

Вот выдержка из wikipedia:

XSLT (Extensible Stylesheet Language Transformations) — часть спецификации XSL, задающая язык преобразований XML-документов. Спецификация XSLT является рекомендацией W3C.

При применении таблицы стилей XSLT, состоящей из набора шаблонов, к XML-документу (исходное дерево) образуется конечное дерево, которое может быть другой XML-структурой, HTML-документом или обычным текстом. Правила выбора (и, отчасти, преобразования) данных из исходного дерева пишутся на языке запросов XPath.

XSLT имеет множество различных применений, в основном в области web-программирования и генерации отчётов. Одной из задач, решаемых языком XSLT, является отделение данных от их представления, как часть общей парадигмы MVC (англ. Model-view-controller). Другой стандартной задачей является преобразование XML-документов из одной XML-схемы в другую.

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

Собственно, эта статья подразумевается именно как практическое введение в XSLT, а поэтому я сразу приведу результирующий XSLT-шаблон, а затем буду его построчно объяснять. Вот он.

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

 <!--Шаблон, преобразующий номер дня недели в его текстовое 
представление-->
 <xsl:template name="get-day-of-the-week-abbreviation">
 <xsl:param name="day-of-the-week"/>
 <xsl:choose>
 <xsl:when test="$day-of-the-week = 1">Вс</xsl:when>
 <xsl:when test="$day-of-the-week = 2">Пн</xsl:when>
 <xsl:when test="$day-of-the-week = 3">Вт</xsl:when>
 <xsl:when test="$day-of-the-week = 4">Ср</xsl:when>
 <xsl:when test="$day-of-the-week = 5">Чт</xsl:when>
 <xsl:when test="$day-of-the-week = 6">Пт</xsl:when>
 <xsl:when test="$day-of-the-week = 7">Сб</xsl:when>
 <xsl:otherwise>?</xsl:otherwise>
 </xsl:choose>
 </xsl:template>
Продолжение статьи XML+XSLT на примере XML-погоды от gismeteo.ru читайте на сайте Веб-разработка? Это просто!

В избранное