Поддерживает ли domxml php4 <xsl:include ... или <xsl:import ...?

maxim

Новичок
Поддерживает ли domxml php4 <xsl:include ... или <xsl:import ...?

Поддерживает ли domxml php4 <xsl:include ... или <xsl:import ...?
Если да то с какой версии.
 

slach

Новичок
с самой первой реализации

php4 domxml xslt построен на базе libxml2 и libxslt
соответсвенно все что держится в XSLT 1.0 есть в libxslt
а xsl:include xsl:import там есть

http://www.php.net/manual/en/function.domxsltstylesheet-process.php

смотри пример в комментариях
 

maxim

Новичок
Блин а у меня не работает

xml.php
$xml = domxml_open_file('d:\home\artsteklo\htdocs\index.xml');
$xsl = domxml_open_file('d:\home\artsteklo\htdocs\index.xsl');

if (!$xsl = domxml_xslt_stylesheet_doc($xsl)) echo 'ne povezlo';
$result = $xsl->process($xml);
echo $result;

----------index.xsl------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:eek:utput encoding="windows-1251"/>
<xsl:eek:utput method="html" indent="yes"/>
<xsl:eek:utput method="html" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>

<xsl:include href="main.xsl" />

<xsl:template match="page">
<xsl:apply-templates />
</xsl:template>

</xsl:stylesheet>

----------main.xsl------------

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<xsl:apply-templates select="page"/>
</html>
</xsl:template>

</xsl:stylesheet>
 

slach

Новичок
<xsl:include href="main.xsl" />

попробуй полный путь до main.xsl
в виде
file://full/path/to/main.xsl
 

dimgel

Новичок
Перед запуском трансформации нужно обязательно вызывать xslt_set_base(). PHP4 разрешает все относительные пути от задданной этим методом базы (нестандартное поведение, по стандарту полагается разрешать от пути к текущему файлу).
 

slach

Новичок
dimgel
ты головой думал преждем чем писать?
тут речь идет про DOMXML php4
а не про Sablotron XSLT в php4
xslt_set_base() это Sablotron'овская фишка на DOMXML она не действует
 

maxim

Новичок
Что то не получается у меня
--------------------------------------------
Warning: domxml_xslt_stylesheet_doc(): compilation error: element include in d:\home\artsteklo\htdocs\del.php on line 7

Warning: domxml_xslt_stylesheet_doc(): xsl:include : unable to load file://d:/home/artsteklo/htdocs/main.xsl in d:\home\artsteklo\htdocs\del.php on line 7
---------------------------------------------------

Может кто пришлет 3 файла

1 пхп скрипт
2 главный xsl
3 включаемый xsl

-~{}~ 18.05.06 18:57:

Неужели никто не юзает такую связку?
 

maxim

Новичок
Вот я и пишу file://d:/home/artsteklo/htdocs/main.xsl

А пхп мне в ответ

Warning: domxml_xslt_stylesheet_doc(): xsl:include : unable to load file://d:/home/artsteklo/htdocs/main.xsl in d:\home\artsteklo\htdocs\del.php on line 7
 

slach

Новичок
php4 какой версии вообще?
libxml2 какой версии?
libxslt какой версии??
 

maxim

Новичок
php 4.3.9
libxml Version 20507
libxslt Version 1.0.30
libxslt compiled against libxml Version 2.5.7

-~{}~ 30.05.06 19:54:

Ну вот сегодня обновил php и экстеншены.

Убрал нафиг file:// и все заработало.
 

Wicked

Новичок
возможно еще стоило попробовать file://d|/
не помню где именно, но где-то помогало :)
 
Сверху