|
|
|
| Подскажите, пожалуйста, как мне решить следующую задачу.
В базе данных содержатся xml-ка и xslt. Пользователь запрашивает определенную страницу и должен получить результат этого xslt над этой xml.
Как это реализуется технически, то есть что должно быть на хостинге и какова последовательность моих действий? PS. Вопрос не касается мелких деталей. | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:01)
| | заголовок XML файла должен содержать ссылку файл шаблона XSLT
Например
<?xml version="1.0" encoding="windows-1251" ?>
<?xml-stylesheet type="text/xsl" href="http://site/.domen.ru/shablon.xsl" ?>
|
те выдергиваете из базы оба файла, формируете заголовок, елси его нет, и отдаете XML, XSLT должен быть доступен по указанному вами адресу.
Я этой технологией не пользуюсь, но примерно, теоретически это выглядит так.
А можно прямо на сервере средствами PHP сформировать на основе этих правил готовую HTML и отдать ее. | |
|
|
|
|
|
|
|
для: GeorgeIV
(06.08.2008 в 10:20)
| | Но ведь первый способ не сработает, если браузер пользователя не поддерживает технологию, а второй требует гемороя.
Вопрос именно в реализации первого способа, но на серверной стороне. PS. Возможно вывод будет осуществляться также в файл на сервере. | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:28)
| |
Но ведь первый способ не сработает, если браузер пользователя не поддерживает технологию,
|
А кто это сейчас не поддерживает?
Применяте тогда PHP5 и его библиотеку libxslt. Будет реализовано это же но на сервере. | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:28)
| | На сервере это выглядит так: берёте xml и xsl пропускаете их через xslt процессор и на выходе получаете html, который можете закешировать (чтобы каждый раз не проводить трансформацию) и отдать пользователю. | |
|
|
|
|
|
|
|
для: Axxil
(06.08.2008 в 10:38)
| | Во. Об этом и речь.
То есть в качестве преобразователя мы используем php + библиотека? или xslt - преобразователь должен быть установлен? | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:43)
| | "php + библиотека" это что?
Есть куча разных xslt преобразователей. В частности, как указано выше, расширение libxslt для php5.
Для php4 sablotron использовался.
Посмотрите через php_info что у вас стоит на хостинге и это используйте. | |
|
|
|
|
|
|
|
для: Axxil
(06.08.2008 в 11:08)
| | ок
как я понимаю, моя задача будет решаться этим преобразователем..
Спасибо. | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:01)
| |
<?php
header('Content-type: text/html; charset=utf-8');
$xsl_proc = new XSLTProcessor();
$xsl = new DOMDocument;
$domDoc = $myXML;
$xsl->load($template);
$xsl_proc->importStyleSheet($xsl);
$document = $xsl_proc->transformToXML($domDoc);
print $document;
?>
|
где
$myXML — это ХМЛ созданный через объект DOMDocument;
$template — это необходимый XSLT шаблон | |
|
|
|
|
|
|
|
для: Lelik
(06.08.2008 в 15:35)
| | . | |
|
|
|
|
|
|
|
для: aseo
(06.08.2008 в 10:01)
| | также можно посмотреть похожую тему | |
|
|
|
|
|
|
|
для: Lelik
(06.08.2008 в 15:37)
| | И вопрос в догонку:
Насколько медленно происходит такое преобразование? Насколько сервер загружается? Если сильно, то есть такая схема кеша: при запросе страницы скрипт лезет в БД и смотрит, есть ли у данной странички жеская кешированная копия, и возвращает ее. А если ее нет, то генерирует ее. В случае невозможности данной операции он формирует ее на лету. Любая правка контента приводит к сбросу кеша (удаление файлов, затем отметка в БД). Как вам такая схема? | |
|
|
|
|
|
|
|
для: Lelik
(06.08.2008 в 15:37)
| | Спасибо большое!
У меня на серваке стоит libxslt.
Использованные классы стандартны? | |
|
|
|