Существует ли возможность добавить PHP-код, например: PHP: <?php echo 'fa'; ?> в XSLT-шаблон так, чтобы после применения шаблона PHP-код без изменений попал бы в результирующий HTML? Если написать код в виде тега, то XSLT-преобразователь просто пропускает его; если записать в CDATA - все спецсимволы в PHP-коде будут заменены на безопасные (с точки зрения синтаксиса HTML) аналоги. Не спец по XSL, но чувствую, что должно же быть решение.
Так мне нужно применить XSLT-шаблон к XML и получить на выходе PHP-страницу с нормальным рабочим PHP-кодом, а не отобразить этот код на странице.
Почему бы не сделать ровно наоборот? Взять PHP страницу, с ее помощью сгенерить XML и применять к нему XSLT?
О да, конечно же я не знаю, как работает PHP))) >зачем импользовать дополнительный текстовый процессор, если пхп сам является Hypertext Preprocessor Не буду сейчас описывать всю задачу, я спрашиваю конкретный вопрос.
>Взять PHP страницу, с ее помощью сгенерить XML и применять к нему XSLT? В моей задаче PHP генерирует XML, затем к нему применяется XSLT, и должна получиться PHP-страница.
В моей задаче PHP генерирует XML, затем к нему применяется XSLT, и должна получиться PHP-страница.<<< конечно же я не знаю, как работает PHP<<< точно не phpfaq.ru/na_tanke ?
Бог мой. А без XSLT генерировать PHP из PHP нельзя? Хотя я где-то слышал о подобном извращении, кто-то в каком-то институте занимался именно этим - писал программы на xml, а затем генерил из XML PHP. Мда, Ну что я могу посоветовать - только почитать документацию по XSLT. Вообще, если я правильно помню данные в CDATA не должны преобразовываться.
> А без XSLT генерировать PHP из PHP нельзя? Нельзя - речь идет об XSLT-преобразовании XML-кода, т.е. вставки PHP-кода находятся в XSLT, а код, который [условно] генерирует XML, вообще не имеет к этим вставкам никакого отношения. >Вообще, если я правильно помню данные в CDATA не должны преобразовываться. http://en.wikipedia.org/wiki/CDATA
xml: <document><code><![CDATA[ <?php echo 11 >?]]></code></document> xsl: ... <xsl:value-of select="code" disable-output-escaping="yes"/> Это?
<xsl:text disable-output-escaping="yes"><?php echo 123 ?></xsl:text> Или <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xslutput method="text" encoding="utf-8"/> <xsl:template match="/"> <xsl:text><![CDATA[<?php echo 123 ?>]]></xsl:text> </xsl:template> </xsl:stylesheet>