За последние 24 часа нас посетили 53836 программистов и 1714 роботов. Сейчас ищут 1015 программистов ...

XML + XSLT, причем тут PHP?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Vitas, 8 янв 2007.

  1. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Видел много сайтов, страницы которых генерируются с помощью XLST из XML'а и появились вопросы:

    1. Как народ делает, чтобы сервер автоматически когда видит XML использует XSL для данного документа (если это вообще возможно)?
    2. Как такие сайты обновляются (вручную в XML редакторе чтоли)?
    3. Тогда вообще стоит ли использовать PHP, если есть XML и XSLT?
    4. Можно делать XSLT преобразования без участия PHP (и других языков)?
    5. Если я буду делать админку (веб-интерфейс), то без PHP или других языков не обойтись?

    Все, написал кучу тупых вопросов, которые давно меня терзают. ;)
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Как говрится, 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 во что-нибудь.
     
  3. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Насколько я понял:

    1. Браузерам не доверяем, сами на сервере с помощью PHP обрабатываем страницы и выдаем готовое пользователю.
    2. XSLT - это модно, но иногда еще и удобно.
    3. Стоит, если сайт динамический.
    4. Лучше сделать преобразование на сервере.
    5. Без PHP не обойтись.

    Значит для обработки документа (шоб браузер съел чистый HTML) надо использовать серверные языки? Или как-то через всякие модули Апача? :D
     
  4. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Так, да? :)
     
  5. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Я бы сказал что чаще всёже модно, хотя однозначного ответа быть не может в принципе...
     
  6. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Точно!

    Приятно, когда люди понимают ;-)

    Не слышал о таком.
     
  7. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Немного не в тему )

    Недавно в одном университете участвовал в дискуссии по поводу применения XML в одном крупном федеральном проекте в области информации. Ничего нового для себя в ходе дискуссии я не открыл.
    Единственное применение XML которое смогли найти университетские зубры - это обмен информацией. Логично и довольно удобно, учитывая то, что для этого xml вообщем-то и создан. А разговору то было. Я даже устал.
    На одних серверах выкладываются xml-файлы, другие сервера их оттуда забирают и в удобном виде выдают информацию пользователям. Всё =)

    p.s.
    Вот чем меня радуют учёные - это: куча слов, теории, пиара, правильных терминов, а делов то всего на 5 минут. Было весело =)
     
  8. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    И правильное нашли применение :).
    Плохо, что далеко не все это понимают. Было время (и оно, похоже, не закончилось), когда XML пихали всюду, где он мог влезть и где не мог. Одно из самых идиотских решений - конфигурационные файлы в формате XML. Вы конфиги freetype видели? Вот и мне не понравилось. Было ж все нормально в 1.х: текстовые файлы. Просто, удобно. Нет: придумали, блин...
     
  9. Anonymous

    Anonymous Guest

    Зато XML послужил базисом для многих других хороших штук — SVG например =)
     
  10. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    AlexGousev, спасибо за помощь!
     
  11. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
  12. Anonymous

    Anonymous Guest

    Vitas, ну дык принципиально то же самое, серверный парсинг и конвертация в HTML =)
    PS. A IE 6 кстати умеет сам обрабатывать XML+XSLT...
     
  13. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Че-то я жоско туплю... ;)
    Так мона без PHP и C++ сделать XSLT преобразование силами самого веб-сервера? :)
     
  14. Anonymous

    Anonymous Guest

    Vitas, ну да =) Для Apache это делает Cocoon. А суть то в том, что некоторые браузеры уже умеют сами интерпретировать связку XML + XSLT, и они могут быь запрошены с веб-сервера как обычные документы и обработаны на клиентской стороне.
     
  15. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Все понял, пасиба. ;)
     
  16. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Только браузеры поддерживают как правило не все возможности XSLT, а их там очень много ;-)
     
  17. Anonymous

    Anonymous Guest

    Sergey89, XSLT поддерживают не только браузеры =)
     
  18. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Горбунов Олег, дак знаю, я говорю конкретно про браузеры. Для несложного форматирования то, что умеют браузеры достаточно ;)
     
  19. virabhadra

    virabhadra Активный пользователь

    С нами с:
    11 дек 2006
    Сообщения:
    127
    Симпатии:
    0
    Адрес:
    Praha, Czech Republic
    Так разница наверно в том, что связку XML + XSLT обрабатывает броузер только?
    В случает PHP + HTML броузер получает готовый разжёванный HTML, а XML ещё разживать надо.
     
  20. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Чтобы отобразить XML документ, браузер должен уметь его преобразовывать с использованием XSL в определённый формат, в то числе и в HTML. Тоесть в итоге и там и тут будет HTML. Наврятли при такой трансформации ты заметишь снижение скорости обработки.