Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: использование XML
 
 автор: aseo   (06.08.2008 в 10:01)   письмо автору
 
 

Подскажите, пожалуйста, как мне решить следующую задачу.
В базе данных содержатся xml-ка и xslt. Пользователь запрашивает определенную страницу и должен получить результат этого xslt над этой xml.
Как это реализуется технически, то есть что должно быть на хостинге и какова последовательность моих действий? PS. Вопрос не касается мелких деталей.

  Ответить  
 
 автор: GeorgeIV   (06.08.2008 в 10:20)   письмо автору
 
   для: 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 и отдать ее.

  Ответить  
 
 автор: aseo   (06.08.2008 в 10:28)   письмо автору
 
   для: GeorgeIV   (06.08.2008 в 10:20)
 

Но ведь первый способ не сработает, если браузер пользователя не поддерживает технологию, а второй требует гемороя.
Вопрос именно в реализации первого способа, но на серверной стороне. PS. Возможно вывод будет осуществляться также в файл на сервере.

  Ответить  
 
 автор: GeorgeIV   (06.08.2008 в 10:36)   письмо автору
 
   для: aseo   (06.08.2008 в 10:28)
 

Но ведь первый способ не сработает, если браузер пользователя не поддерживает технологию, 

А кто это сейчас не поддерживает?
Применяте тогда PHP5 и его библиотеку libxslt. Будет реализовано это же но на сервере.

  Ответить  
 
 автор: Axxil   (06.08.2008 в 10:38)   письмо автору
 
   для: aseo   (06.08.2008 в 10:28)
 

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

  Ответить  
 
 автор: aseo   (06.08.2008 в 10:43)   письмо автору
 
   для: Axxil   (06.08.2008 в 10:38)
 

Во. Об этом и речь.
То есть в качестве преобразователя мы используем php + библиотека? или xslt - преобразователь должен быть установлен?

  Ответить  
 
 автор: Axxil   (06.08.2008 в 11:08)   письмо автору
 
   для: aseo   (06.08.2008 в 10:43)
 

"php + библиотека" это что?
Есть куча разных xslt преобразователей. В частности, как указано выше, расширение libxslt для php5.
Для php4 sablotron использовался.

Посмотрите через php_info что у вас стоит на хостинге и это используйте.

  Ответить  
 
 автор: aseo   (06.08.2008 в 11:13)   письмо автору
 
   для: Axxil   (06.08.2008 в 11:08)
 

ок
как я понимаю, моя задача будет решаться этим преобразователем..
Спасибо.

  Ответить  
 
 автор: Lelik   (06.08.2008 в 15:35)   письмо автору
 
   для: 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 шаблон

  Ответить  
 
 автор: aseo   (13.08.2008 в 17:29)   письмо автору
 
   для: Lelik   (06.08.2008 в 15:35)
 

.

  Ответить  
 
 автор: Lelik   (06.08.2008 в 15:37)   письмо автору
 
   для: aseo   (06.08.2008 в 10:01)
 

также можно посмотреть похожую тему

  Ответить  
 
 автор: aseo   (13.08.2008 в 17:44)   письмо автору
 
   для: Lelik   (06.08.2008 в 15:37)
 

И вопрос в догонку:
Насколько медленно происходит такое преобразование? Насколько сервер загружается? Если сильно, то есть такая схема кеша: при запросе страницы скрипт лезет в БД и смотрит, есть ли у данной странички жеская кешированная копия, и возвращает ее. А если ее нет, то генерирует ее. В случае невозможности данной операции он формирует ее на лету. Любая правка контента приводит к сбросу кеша (удаление файлов, затем отметка в БД). Как вам такая схема?

  Ответить  
 
 автор: aseo   (13.08.2008 в 17:45)   письмо автору
 
   для: Lelik   (06.08.2008 в 15:37)
 

Спасибо большое!
У меня на серваке стоит libxslt.

Использованные классы стандартны?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования