Re[3]: PHP и XML/XSL
От: Captain Crocus  
Дата: 11.11.02 07:29
Оценка:
Здравствуйте Artyom, Вы писали:

A>Здравствуйте Captain Crocus, Вы писали:


CC>>Насколько я знаю, начиная с четвертой версии PHP, он (PHP) поставляется с XSLT-процессором Sablotron. Говорят, что Sablotron слегка ущербный — не видел, не знаю. Он должен подключаться к PHP как расширение. Должна быть там dll-ка или несколько. Ну и функции там соответственно должны быть по применению преобразования к xml-файлу, вобщем, все как везде. Если идея PHP для тебя принципиальна, то я могу порыть у Валикова в "Технологии XSLT", там был именно тот простой пример с PHP и XSLT, который тебе нужен. Но это уже в понедельник


A>Был бы очень признателен!


Сначала кусок о подключении под Windows32:

1. Убедиться, что файл php_sablot.dll присутствует в каталоге расширений.
2. Убедиться, что в файле php.ini присутствует строка extension=php_sablot.dll/
3. Убедиться, что библиотеки expat.dll и sablot.dll находятся в каталоге, указанном в переменной окружения PATH.


Теперь об использовании на других платформах:

На других платформах потребуется cконфигурировать php c флагом --with-sablot. В остальном установка совершенно аналогична.


К сожалению, о подключении все
Теперь об использовании:


<html>
  <head>
    <title>Guestbook</title>
      <META http-equiv="Content-Type" content="text/html; charset=windows-1251">
      <link rel="stylesheet" type="text/css" href="style.css"/>
  </head>
<body>
<?php
  // Загружаем входящий документ
  $sourcefile = "source.xml";
  $sourcehandle = fopen($sourcefile, "r")
  or die("Невозможно открыть входящий документ.");
  $source = fread($sourcehandle, filesize ($sourcefile));
  // Загружаем преобразование
  $stylesheetfile = "stylesheet.xsl";
  $stylesheethandle = fopen($stylesheetfile, "r") or die("Невозможно открыть файл преобразования");
  $stylesheet = fread($stylesheethandle, filesize ($stylesheetfile),'
  // Инициализируем XSLT-процессор
  $xslt = @xslt_create() or die("Can't create XSLT handle!");
  // Выполняем преобразование
  @xslt_process($stylesheet, $source, $result) ;
  // Выводим результат
  echo $result;
  // Освобождаем ресурсы
  @xslt_free($xslt);
?>
</body>
</html>



Это пока все .
PS. Я тут повесил у себя Apache+Perl+MySQL+PHP. Если будет время, то проверю, как все это работает. Мне что-то самому стало интересно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.