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:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <?xml-stylesheet type="text/xsl" href="main.xsl"?>
  3. <document>
  4.      <headSection></headSection>
  5.      <bodySection>
  6.            <!-- TOP START -->
  7.            <top>
  8.                  <topMenu>
  9.                        <item>
  10.                              <linkTitle>Link 1</linkTitle>
  11.                              <link>?page=link</link>
  12.                        </item>
  13. <!-- Tutaj reszta treści -->
  14.            <!-- FOOTER START -->
  15.            <footer>Copyright Š 2007 ...</footer>
  16.            <!-- FOOTER END -->
  17.      </bodySection>
  18. </document>


XSL:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  3. <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" />
  4. <xsl:template match="document">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  6.      <head>
  7.            <title>Tytuł strony</title>
  8.  
  9.                  @import url("cSs/main.css");
  10.            </style>
  11.      </head>
  12.      <body>
  13.            <div id="container">
  14.                  <div id="top">
  15.                        <!-- FRAGMENT GDZIE ZALACZAM KOD php>
  16.                        <div id="main-content"><xsl:processing-instruction name="php">echo 'php';</xsl:processing-instruction></div>
  17.                        
  18.      </body>
  19. </html>
  20. </xsl:template>
  21. </xsl:stylesheet>


php:
  1. <?php 
  2. $xml=new DOMDocument; 
  3. $xml->load('xMl/main.xml'); 
  4. $xsl=new DOMDocument; 
  5. $xsl->load('xSl/main.xsl'); 
  6. $proc=new XSLTProcessor; 
  7. $proc->importStylesheet($xsl); 
  8. echo $proc->transformToXML($xml); 
  9. ?>


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:

  1. <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.