XSLT - Преобразование

Корневым элементом, декларирующим документ таблицы стилей XSL, является <xsl:stylesheet> или <xsl:transform>.

Примечание: Элементы <xsl:stylesheet> и <xsl:transform> являются полными синонимами, и для декларации таблицы стилей можно использовать любой из них!

Согласно рекомендации консорциума W3C таблица стилей XSL декларируется следующим образом:


<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

или:


<xsl:transform version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

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

Строка xmlns:xsl="http://www.w3.org/1999/XSL/Transform" указывает на официальное пространство имен XSLT консорциума W3C. Если вы используете это пространство имен, то вы также должны указывать и атрибут version="1.0".

Начнем с чистого XML документа

Предположим, что нам нужно преобразовать следующий XML документ ("cd_catalog.xml") в XHTML:


<?xml version="1.0" encoding="UTF-8"?>
<catalog>
   <cd>
     <title>Empire Burlesque</title>
     <artist>Bob Dylan</artist>
     <country>USA</country>
     <company>Columbia</company>
     <price>10.90</price>
     <year>1985</year>
   </cd>
 .
 .
</catalog>

Просмотр XML файлов в IE, Chrome, Firefox, Safari и Opera: Откройте XML файл (нажмите на ссылку ниже) - XML документ буде отображаться в виде окрашенных в разные цвета корневого и дочерних элементов и их содержимого (кроме браузера Safari). Часто слева от элементов XML дерева выводится знак плюса (+) или минуса (-), при нажатии на который можно развернуть/свернуть структуру элемента. Чтобы просмотреть исходный код документа, нажмите правой кнопкой мыши на XML файл и в контекстном меню выберите пункт "Исходный код" (Opera) или "Просмотреть код страницы" (Chrome)!

Посмотреть "cd_catalog.xml"

Создание таблицы стилей XSL

Теперь создаем таблицу стилей XSL ("cd_catalog.xsl") с шаблоном преобразования:


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

<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
   <html>
   <body>
   <h2>My CD Collection</h2>
   <table border="1">
     <tr bgcolor="#9acd32">
       <th>Title</th>
       <th>Artist</th>
     </tr>
     <xsl:for-each select="catalog/cd">
     <tr>
       <td><xsl:value-of select="title"/></td>
       <td><xsl:value-of select="artist"/></td>
     </tr>
     </xsl:for-each>
   </table>
   </body>
   </html>
</xsl:template>

</xsl:stylesheet> 

Просмотреть "cd_catalog.xsl"

Подключаем таблицу стилей XSL к XML документу

Добавляем ссылку на таблицу стилей XSL в XML документ ("cd_catalog.xml"):


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://msiter.ru/cd_catalog.xsl"?>
<catalog>
   <cd>
     <title>Empire Burlesque</title>
     <artist>Bob Dylan</artist>
     <country>USA</country>
     <company>Columbia</company>
     <price>10.90</price>
     <year>1985</year>
   </cd>
 .
 .
</catalog>

Если вы используете XSLT совместимый браузер, то вы увидите корректно преобразованный из XML в XHTML документ.

Просмотреть результат