Аргерих Л. О языке РНР. Часть 5. Страница 32


<xsl:stylesheet version="1, 0" xmlns:xsl="http://www.w3.org/1999/XSL/Transforuf">http://www.w3.org/1999/XSL/Transforuf>

Следующая строка создает в будущем файле HTML тег <meta>, который вы­глядит следующим образом: <meta http-equiv="Content-Type" content="text/ht- nl; charset=utf-8">:

<xsl:output encoding="utf-8" method="html" lndent="yes" />

Так как Recordset — корневой элемент, используем его в качестве начала файла HTML:

<xsl:template match="/Recordset"> <html> <head>

<title>XSL Travel</title> </head>

<body>

<h1>Travel Packages</h1>

<table

С помощью элемента циклически проходим оба экземпляра Tra-

velpackage в файле travel.xml. В цикле for-each находится в основном то же самое. Начнем строку таблицы и поместим в нее имя элемента и значение этого элемента.

В этом коде не обязательно использовать <xsl: text>, но это хорошая практика. Следующие примеры XSL дают одинаковые результаты на экране (табл. 21.5):

Однако в примере 3 получается иной HTML. Примеры 1 и 2 создают HTML без пробельных символов (одна большая строка HTML), тогда как в примере 3 есть пробельные символы в виде возврата каретки после <td> и Count ry_name.

Следующий большой блок кода строит таблицу, отображающую содержимое файла XML. С помощью цикла for-each циклически проходим каждый эк­земпляр Travelpackage. Когда процессор встречает элемент <xsl: value-of se­lect "Elementname" />, он вводит значение этого элемента. Таким образом, эле­мент xsl: value-of выступает в роли переменной:

<xsl: for-each select="Travelpackage">

<tr> <td>

<xsl; text>Country_name</xsl: text>

</td>

<td>

<xsl:value-of select="Country_name" />

</td> </tr> <tr>

<td>

<xsl:text>City</xsl:text>

</td> <td>

/>

</td> </tr>

<tr>

<td>

<xsl: text>Resort</xsl: text>

</td>

<td>

<xsl:value-of select="Resort" />

</td> </tr> <tr>

<td>

<xsl:text>Resort_rating</xsl:text>

</td>

<td>

<xsl:value-of select="Resort_rating" />

</td> </tr> <tr> <td>

<xsl:text>Resort_typeofholiday</xsl:text>

</td> <td>

<xsl;value-of select="Resort_watersports" />