MT
Guest
Проблема с <xsl:import> при преобразовании XML -> HTML
Ситуация слудющая: есть папка $some_path/www - веб-пространство ($doc_root) и $some_path/templates - папка с xsl-шаблонами. Папки лежат рядом. В $doc_root генерится файлик out.xml, который надо преобразовать в html и выдать браузеру.
Когда я пишу в $doc_root/index.php:
$xml = new DOMDocument;
$xml->load(./out.xml);
$xsl = new DOMDocument;
$xsl->load(../templates/default.xsl);
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
print $proc->transformToXML($xml);
все работает отлично до тех пор, пока не пытаюсь прописать в default.xsl, к примеру, <xsl:import href="navigation.xsl" />
Сначала думал, что путь до navigation.xsl указан неправильно, все перепробовал - ничего не получилось.
Перечитал кучу мануалов, но нигде ничего по поводу xsl:import не написано.
Скажите, можно вообще использовать <xsl:import> в данном случае? Можно ли размещать xsl-шаблоны вне веб-пространства? Как мою проблему вообще можно решить?
-~{}~ 10.09.05 22:41:
Простите за глупость, оказалось, что проблемы нет, просто я <xsl:import> писал после <xslutput>, что является совершеннейшей глупостью. Перестановка строк помогла. Теперь все работает
defaut.xsl:
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE xsl:stylesheet SYSTEM "http://localhost/symbols.ent">
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="navigation.xsl" />
<xslutput method="html" encoding="utf-8" indent="no" />
</xsl:stylesheet>
Ситуация слудющая: есть папка $some_path/www - веб-пространство ($doc_root) и $some_path/templates - папка с xsl-шаблонами. Папки лежат рядом. В $doc_root генерится файлик out.xml, который надо преобразовать в html и выдать браузеру.
Когда я пишу в $doc_root/index.php:
$xml = new DOMDocument;
$xml->load(./out.xml);
$xsl = new DOMDocument;
$xsl->load(../templates/default.xsl);
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
print $proc->transformToXML($xml);
все работает отлично до тех пор, пока не пытаюсь прописать в default.xsl, к примеру, <xsl:import href="navigation.xsl" />
Сначала думал, что путь до navigation.xsl указан неправильно, все перепробовал - ничего не получилось.
Перечитал кучу мануалов, но нигде ничего по поводу xsl:import не написано.
Скажите, можно вообще использовать <xsl:import> в данном случае? Можно ли размещать xsl-шаблоны вне веб-пространства? Как мою проблему вообще можно решить?
-~{}~ 10.09.05 22:41:
Простите за глупость, оказалось, что проблемы нет, просто я <xsl:import> писал после <xslutput>, что является совершеннейшей глупостью. Перестановка строк помогла. Теперь все работает
defaut.xsl:
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE xsl:stylesheet SYSTEM "http://localhost/symbols.ent">
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="navigation.xsl" />
<xslutput method="html" encoding="utf-8" indent="no" />
</xsl:stylesheet>