XSLT в PHP

Работа с XML и XSLT в PHP

Разбираем на примере

$xml = new domDocument();
$xml -> load('./index.xml');
$xsl = new domDocument();
$xsl -> load('./index.xsl');
$processor = new XSLTProcessor();
$processor -> registerPHPFunctions();
$xsl = $processor -> importStylesheet($xsl);
$string = $processor -> transformToXml($xml);

echo $string;

Что делается:

  1. создаем объект domDocument (по умолчанию кодировка utf-8)
  2. загружаем в него xml
  3. то же самое для xsl-шаблона
  4. метод registerPHPFunctions следует вызывать, если предполагается обрабатывать в xsl-шаблоне php-функции
  5. в $string получаем обработанный документ

По п.4. следует иметь в виду:
т.о. легко вызываются глобальные функции. Для этого в xslt есть инструкция php:function. Например,

<xsl:variable name="test1" select="php:function('testfunc', 'YES!','xslt')"/>

Здесь testfunc - имя вызываемой функции. Все остальное - ее аргументы.

Увы, как я ни старался, я не смог понять, как вызывать не только функции, но и методы классов. Буржуи на своих форумах утверждают, что методы библиотек вызываются. Я не смог этого повторить. А как вызвать метод объекта - для меня полная загадка.