Hej,
Mam następujący problem. Chcę umieścić kod php w arkuszu xsl, ale niestety kod nie jest wykonywany. Być może, że popełniam jakiś podstawowy błąd, np w deklarowaniu output method w XSL, lub w procesie przetwarzania XML'a i XSL przez php. Nie prosiłbym jednak o pomoc bez przetestowaniu kilku opcji, niestety bez rezultatu...
Oto pliki:
XML:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="main.xsl"?>
<document>
<headSection></headSection>
<bodySection>
<!-- TOP START -->
<top>
<topMenu>
<item>
<linkTitle>Link 1</linkTitle>
<link>?page=link</link>
</item>
<!-- Tutaj reszta treści -->
<!-- FOOTER START -->
<footer>Copyright Š 2007 ...</footer>
<!-- FOOTER END -->
</bodySection>
</document>
XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" doctype-public="-//W3C/DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<xsl:template match="document">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title>Tytuł strony</title>
@import url("cSs/main.css");
</style>
</head>
<body>
<div id="container">
<div id="top">
<!-- FRAGMENT GDZIE ZALACZAM KOD php>
<div id="main-content"><xsl:processing-instruction name="php">echo 'php';</xsl:processing-instruction></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
php:
<?php
$xml=new DOMDocument;
$xml->load('xMl/main.xml');
$xsl=new DOMDocument;
$xsl->load('xSl/main.xsl');
$proc=new XSLTProcessor;
$proc->importStylesheet($xsl);
echo $proc->transformToXML($xml); ?>
Kod xml i xsl odchudzilem w poście. Oczywiście obydwa walidują się poprawnie i przy wykonaniu skryptu otrzymuję poprawną stronę. Niestety w miejścu gdzie jest kod php, w źródle strony linia wygląda tak:
<div id="main-content"><?php echo 'php'; ?></div>
Bede bardzo wdzięczny za odpowiedź. Dodam jeszcze, że nie mogę używać Sablotrona, choć nie wiem czy to zmieniłoby sytuację.
Pozdrawiam.