</td>
</tr>
<tr> <td>
<xsl:text>Resort_watersports</xsl:text>
</td> <td>
<xsl:value-of select="Resort_watersports" /> </td> </tr> <tr> <td>
<xsl:text>Resort_meals</xsl:text> </td>
<td>
<xsl:value-of select="Resort_meals" /> </td> </tr> <tr> <td>
<xsl:text>Resort_drinks</xsl:text>
</td> <td>
<xsl:value-of select="Resort_drinks" /> </td> </tr> <tr> <td>
<xsl:text>Package_dateofdep</xsl:text>
</td>
<td>
<xsl:va!ue-of select="*/Package_dateofdep" />
</td> </tr>
<tr>
<td>
<xsl:text>Package_p rice</xsl:text>
</td> <td>
/>
</td> </tr> <tr>
<td colspan="2"xhr /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Напомним, что в этой главе мы занимаемся просто отображением XML в виде файла HTML. С помощью XSL можно было бы отобразить практически все, что можно вообразить. Файл XML travel, xml вам уже знаком.
Для этого кода требуется лишь загрузить файлы XSL и XML в строку и вызвать процессор XSLT.1 Процессор XSLT возвращает (в данном случае) строку отформатированного HTML в броузер. Все действия по форматированию XML выполняются процессором при следовании правилам, описанным в файле XSL. Если не хотите обращаться к внешним файлам, можно включить строку XSL или строку XML в код РНР. Это делается при помощи объявления специальных аргументов 'arg:/_xml', 'arg:/_xsl' и массива arguments - пятого параметра функции, содержащего данные XML и XSL.
Следующий код php) показывает, как считать содержимое этих
файлов в $xslData и $xmlData. Поскольку переменные $xslData и $xmlData представляют собой массивы, необходимо преобразовать их в строки, воспользовавшись функцией implode(). Получив строки, можем вызвать процессор:
<?php
$xslData = file("travel.xsl", "r"); $xmlData = file("travel.xml", "r");
{arguments = array ( '/_xsl' => implodeC", $xslData), '/_xml' => implodeC", $xmlData) )
$xh = xslt_create(); // создадим процессор XSLT
if (Sresult= xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, {arguments)) {
echo($result); } elsey®
echo("There is an error in the XSL transformation, . .\n"); echo("\tError number: " . xslt_errno($xh) . "\n"); echo("\tError string: " . xslt_error({xh) . "\n");