Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Extensions > Проблема с domxml_xslt_stylesheet_file()


Автор: Coder 6.3.2008, 07:26
Ошибка:
Код

Fatal error: Call to undefined function domxml_xslt_stylesheet_file() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ppr\modules\_xslt.module.php on line 51


Хотя в PHP.INI:
..........
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
extension=php_xsl.dll

php_xsl.dll лежит на месте (вместе с другими библиотеками, функции которых работают). Или не в этой библиотеке реализована функция domxml_xslt_stylesheet_file()?

Автор: mishaSL 6.3.2008, 19:59
Coder, я так понимаю что у вас скорее всего стоит PHP5. Тогда:
Код


Migrating to PHP 5

Call XSLTProcessor::importStylesheet with DOMDocument::load($xsl_file) as parameter.


Автор: Coder 7.3.2008, 08:27
mishaSL, А как вот такой код заменить с учетом PHP5?

Код

$this->xsltDomDocument = domxml_xslt_stylesheet_file($stylesheetFileName);


Автор: Coder 7.3.2008, 15:51
Сделал так:
Код

        $this->xsltDomDocument=DOMDocument::load($stylesheetFileName);
        XSLTProcessor::importStylesheet($this->xsltDomDocument);


Выдает ошибку:
Код

Fatal error: Call to undefined method domdocument::load() in .......... on line 63


Ничего не пойму... php_domxml.dll лежит на месте, в PHP.INI прописана. 

phpinfo() выдает:
Код

dom
DOM/XML  enabled  
DOM/XML API Version  20031129  
libxml Version  2.6.26  
HTML Support  enabled  
XPath Support  enabled  
XPointer Support  enabled  
Schema Support  enabled  
RelaxNG Support  enabled  

domxml
DOM/XML  enabled  
DOM/XML API Version  20030407  
libxml Version  20626  
HTML Support  enabled  
XPath Support  enabled  
XPointer Support  enabled  


Все вроде бы все включено... 

Автор: mishaSL 7.3.2008, 15:54
Цитата(Coder @  7.3.2008,  08:27 Найти цитируемый пост)
mishaSL, А как вот такой код заменить с учетом PHP5?
$this->xsltDomDocument = domxml_xslt_stylesheet_file($stylesheetFileName);


Вот пример:
Код

<?php

# LOAD XML FILE
$XML = new DOMDocument();
$XML->load( 'data.xml' );

# START XSLT
$xslt = new XSLTProcessor();

# IMPORT STYLESHEET 1
$XSL = new DOMDocument();
$XSL->load( 'template1.xsl' );
$xslt->importStylesheet( $XSL );

#IMPORT STYLESHEET 2
$XSL = new DOMDocument();
$XSL->load( 'template2.xsl' );
$xslt->importStylesheet( $XSL );

#PRINT
print $xslt->transformToXML( $XML );
?>

http://ru2.php.net/manual/ru/function.xsl-xsltprocessor-import-stylesheet.php#79257

Если не разберешься то напиши.

Автор: Coder 7.3.2008, 16:04
mishaSL, глянь сообщение выше (на 51 минуте которое).

Автор: mishaSL 7.3.2008, 17:10
Coder, $this->xsltDomDocument это экземпляр какого класса?


Примерно так я себе это вижу:
Код

<?php

$this->xsltProcessor = new XSLTProcessor();

$xslt = new XSLTProcessor();

$XSL = new DOMDocument();
$XSL->load($stylesheetFileName);
$this->xsltProcessor->importStylesheet($XSL);

//Там где надо преобразовать делаешь:
print $xslt->transformToXML( $XML );
//Где $XML - экземпляр класса DOMDocument, в который ты уже загрузил нужный тебе xml файл.


?>


Если не понятно, то выложи сюда весь код, который за это отвечает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)