Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > XSLT


Автор: DragonLord 18.6.2007, 14:20
Юзал поиск по форуму, чтоб разобраться в шаблонах. Наткнулся на XSLT. Я понял, что это не то функция не то дополнительный модуль непосредственно самого пхп. Но в обычной сборке его нет. Сори если бред в сети инфа только об использовании, а вот о том с чем его есть не нашел ниче. Дык собственно вопрос если он требует доп установки где его взять и как узнать есть ли он на моем хостинге?.

Автор: Mymik 18.6.2007, 19:27
DragonLord, вообще xslt это язык препроцессора браузеров... типа JavaScript только круче и гораздо менее кроссбраузерный... и не факт, что он будет поддерживаться вообще (хотя в таких браузерах как FF, Opera или IE он поддерживается, но по разному). Потому используют преобразование xslt шаблонов на стороне сервера. Довольно таки удобно, если не хочешь использовать Smarty

Вот один из примеров как это делается
http://xmlhack.ru/books/xslt/ch_09_04.html

Т.е. сам xslt натравливается на xml данные и заполняет этими xml данными свой шаблон.
Честно говоря встречал это дело только в самых крайних случаях... 

Автор: Golda 18.6.2007, 23:46
Цитата

XSL is a language for expressing style sheets.


Это не функция и не модуль. Это язык. Язык преобразований. Часто используется для построения шаблонов. Разработчики XSL не привязывали его целенаправлено исключительно к броузерам. И у выполнения преобразований на стороне клиента, и на стороне сервера есть свои преимущества.

Плюс использования на стороне клиента - простота реализации. Достаточно добавить одну процессорную инструкцию в xml, чтобы указать броузеру, каким xsl обрабатывать. 

Код

<?xml-stylesheet type="text/xsl" href="my.xsl"?>  


и все.

Что хорошего в преобразовании на стороне сервера:
  • динамичность (можете в зависимости от условий менять xml, xsl, передаваемые параметры)
  • независимость от совместимости броузеров в исполнении преобразований
  • экономия трафика. Результат преобразований, как правило, меньшего размера, чем xml + xsl
Поскольку за все надо платить, есть и минус: сервер тратит больше времени на обработку запроса пользователя, поскольку плюсуется время, которое сервер тратит на преобразование.

Если Вас интересуют преобразования на стороне сервера, для PHP4 понадобится extension xslt (sablotron), а в PHP5 XSL-extension, использующий libxslt, встроен по умолчанию.

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

Автор: sTa1kEr 19.6.2007, 02:26
Golda, абсолютно с вами согласен. Но хотел бы акцентировать внимание на том, что он *никогда* не был браузерным языком. Он давно широко используется во всех технологиях основанных или тесно связанных с XML. И, имхо, имеет намного больше пользы именно в трансформации из одного XML в другой, нежели в верстке.

Еще один минус в клиентской обработке XSLT тот же, что и для AJAX-а - поисковые боты не умеют его обрабатывать.

Автор: DragonLord 19.6.2007, 05:17
Всем спасибо. Все понятно. Вопрос можно считать решенным.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)