Видел много сайтов, страницы которых генерируются с помощью XLST из XML'а и появились вопросы: 1. Как народ делает, чтобы сервер автоматически когда видит XML использует XSL для данного документа (если это вообще возможно)? 2. Как такие сайты обновляются (вручную в XML редакторе чтоли)? 3. Тогда вообще стоит ли использовать PHP, если есть XML и XSLT? 4. Можно делать XSLT преобразования без участия PHP (и других языков)? 5. Если я буду делать админку (веб-интерфейс), то без PHP или других языков не обойтись? Все, написал кучу тупых вопросов, которые давно меня терзают.
Как говрится, RTFM ;-) По сути: в XML файле прописывается каким XSL его надо обработать, чтобы получить что-то нужное. В данном конкретном случае - HTML-страничку. По идее, все это преобразование должен делать браузер. На практике через mod-rewrite отлавливаем *.xml или тупо добавляем расширение .xml к списку обрабатываемых с помощью PHP (далее через REQUEST_URI...), с помощью PHP делаем XSL-преобразование и выдаем конечному юзеру HTML. Вся идея формата XML - это отделить данные от оформления. Соответственно, все данные пишутся в файл вручную и там и храняться. А когда надо - форматируются в нужный формат (опять по-нерусски) и выдаются юзеру. На практике: с помощью PHP и базы данных на лету создаем XML-файл, обрабатываем его XSLT-преобразованием и выдаем юзеру. Возникает резонный вопрос: а нафига такое вот надо?! Вопрос верный. И на него есть ответы: 1. Существуют ситуации, когда одни и те же данные нужно представить в разных видах. Пример: пишем документацию в DocBook, а потом перегоняем ее в HTML, PDF, CHM и т.д. с помощью XSLT. 2. Обучаем верстальщиков не PHP, а более простому XSLT. Т.е. получаем что-то вроде шаблонизатора с элементами программирования. 3. Модно. В первом случае данные вводятся вручную. Хранить данный в XML-файлах довольно неудобно с точки зрения обработки. Несмотря на довольно мощный синтаксис XQuery/XPath строить на всем этом деле БД дело бессмысленное и неблагодарное. Посему, данный вариант использования XML на сайтах отпадает. Второй случай тоже не лучшее решение. Гораздо проще заставить программиста написать шаблонизатор или использовать готовый (типа smarty), чем обучать верстальщиков XSLT. Хотя, с другой стороны, XSLT - все-таки стандарт. Поэтому данный вариант я для себя считаю обоснованным, но никогда не собираюсь его применять. А вот третий случай - это вот кругом и рядом. Основная масса. Ответил в первом вопросе, вроде... Там же... XML - формат файла. XSL (XML Stylesheet Language) - язык преобразования XML во что-нибудь.
Насколько я понял: 1. Браузерам не доверяем, сами на сервере с помощью PHP обрабатываем страницы и выдаем готовое пользователю. 2. XSLT - это модно, но иногда еще и удобно. 3. Стоит, если сайт динамический. 4. Лучше сделать преобразование на сервере. 5. Без PHP не обойтись. Значит для обработки документа (шоб браузер съел чистый HTML) надо использовать серверные языки? Или как-то через всякие модули Апача?
Немного не в тему ) Недавно в одном университете участвовал в дискуссии по поводу применения XML в одном крупном федеральном проекте в области информации. Ничего нового для себя в ходе дискуссии я не открыл. Единственное применение XML которое смогли найти университетские зубры - это обмен информацией. Логично и довольно удобно, учитывая то, что для этого xml вообщем-то и создан. А разговору то было. Я даже устал. На одних серверах выкладываются xml-файлы, другие сервера их оттуда забирают и в удобном виде выдают информацию пользователям. Всё =) p.s. Вот чем меня радуют учёные - это: куча слов, теории, пиара, правильных терминов, а делов то всего на 5 минут. Было весело =)
И правильное нашли применение . Плохо, что далеко не все это понимают. Было время (и оно, похоже, не закончилось), когда XML пихали всюду, где он мог влезть и где не мог. Одно из самых идиотских решений - конфигурационные файлы в формате XML. Вы конфиги freetype видели? Вот и мне не понравилось. Было ж все нормально в 1.х: текстовые файлы. Просто, удобно. Нет: придумали, блин...
Vitas, ну дык принципиально то же самое, серверный парсинг и конвертация в HTML =) PS. A IE 6 кстати умеет сам обрабатывать XML+XSLT...
Vitas, ну да =) Для Apache это делает Cocoon. А суть то в том, что некоторые браузеры уже умеют сами интерпретировать связку XML + XSLT, и они могут быь запрошены с веб-сервера как обычные документы и обработаны на клиентской стороне.
Горбунов Олег, дак знаю, я говорю конкретно про браузеры. Для несложного форматирования то, что умеют браузеры достаточно
Так разница наверно в том, что связку XML + XSLT обрабатывает броузер только? В случает PHP + HTML броузер получает готовый разжёванный HTML, а XML ещё разживать надо.
Чтобы отобразить XML документ, браузер должен уметь его преобразовывать с использованием XSL в определённый формат, в то числе и в HTML. Тоесть в итоге и там и тут будет HTML. Наврятли при такой трансформации ты заметишь снижение скорости обработки.