Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #77, МАЙ 2005 г.

Одежка для XML

Никита Кислицин

Хакер, номер #077, стр. 077-120-3


[обработка на стороне сервера]

Как легко догадаться, все, что я говорил выше, подразумевает обработку и форматирование документа на стороне клиента. То есть сам клиентский парсер XML, поставляемый вместе с операционной системой, выполняет всю работу по форматированию документа. Однако не всегда это доступно и удобно.

Представь, что ты получаешь XML-данные внутри своего скрипта и тебе надо отформатировать их и вставить полученный html-код в генерируемую страницу. Разумеется, в этом случае использовать клиентский парсер не получится. Как же быть? Ну, разумеется, крутые парни из команды php-девелоперов все уже сделали до нас!

Начиная с версии 4.0.3 доступна функция xslt_process, которая производит трансформацию XML-данных в html-разметку по XSLT-правилам. Пользоваться ей чрезвычайно просто:

Использование xslt_process

<?php

$arguments = array(

     '/_xml' => $xml,

     '/_xsl' => $xsl

);

$xh = xslt_create();

$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);

if ($result) {

   echo "Результат преобразования:<pre> $result </pre>\n";

}

xslt_free($xh);

?>

[свой RSS-клиент]

На самом деле, я уже все самое важное рассказал :). Тебе уже и самому по силам написать RSS-клиента, однако, чтобы снять все вопросы, я сейчас расскажу на пальцах, как это можно сделать (его код вместе с файлом преобразований ты найдешь на диске).

Задача на самом деле элементарная и сводится к следующему. Тебе необходимо при помощи функции fopen() получить содержимое rss-ленты в специальный буфер, а затем, при помощи функции xslt_process применить к этим данным XSLT-преобразование, чтобы получить на выходе готовую html-страницу. Не надо быть супербизоном, чтобы понять: основная сложность здесь заключается как раз в том, чтобы разработать XSL-файл. Вообще говоря, RSS – довольно изощренный формат и реализовать его полную поддержку не так легко. Однако сделать поддержку самых популярных тегов ты сможешь очень быстро, даже действуя просто по аналогии с разобранным выше примером. К сожалению, место в журнале не позволяет мне привести здесь код такого XSLT-файла, но ты можешь найти его на диске. Будут вопросы – пиши, амиго. Давай, не попадайся.

WWW

Дополнительную информацию ты можешь получить по этим ссылкам:

www.raleigh.ru/tutorials/XMLTutorial/

www.raleigh.ru/tutorials/XMLTutorial/?theme=2

www.webclub.ru/archive/xml/article-724.html

http://ru2.php.net/manual/en/function.xslt-process.php

CD

На нашем диске ты найдешь всю необходимую для понимания статьи документацию, а так же PHP последней версии - 5.0.4.

Назад на стр. 077-120-2  Содержание