За последние 24 часа нас посетили 34989 программистов и 1757 роботов. Сейчас ищут 726 программистов ...

PHP-код в XSLT-шаблоне

Тема в разделе "Прочие вопросы по PHP", создана пользователем Michael, 22 фев 2010.

  1. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    Существует ли возможность добавить PHP-код, например:

    PHP:
    1. <?php echo 'fa'; ?>
    в XSLT-шаблон так, чтобы после применения шаблона PHP-код без изменений попал бы в результирующий HTML?
    Если написать код в виде тега, то XSLT-преобразователь просто пропускает его; если записать в CDATA - все спецсимволы в PHP-коде будут заменены на безопасные (с точки зрения синтаксиса HTML) аналоги.

    Не спец по XSL, но чувствую, что должно же быть решение.
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Michael
    Чем не устраивает это?
    Отображаться оно будет точно так же, как и приведено в твоем примере.
     
  3. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    Так мне нужно применить XSLT-шаблон к XML и получить на выходе PHP-страницу с нормальным рабочим PHP-кодом, а не отобразить этот код на странице.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    зачем импользовать дополнительный текстовый процессор, если пхп сам является Hypertext Preprocessor
     
  5. O_O
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    да, а в сабже вообще бред =)
    вот может поможет phpfaq.ru/na_tanke
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Почему бы не сделать ровно наоборот?
    Взять PHP страницу, с ее помощью сгенерить XML и применять к нему XSLT?
     
  8. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    О да, конечно же я не знаю, как работает PHP)))

    >зачем импользовать дополнительный текстовый процессор, если пхп сам является Hypertext Preprocessor
    Не буду сейчас описывать всю задачу, я спрашиваю конкретный вопрос.
     
  9. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    >Взять PHP страницу, с ее помощью сгенерить XML и применять к нему XSLT?

    В моей задаче PHP генерирует XML, затем к нему применяется XSLT, и должна получиться PHP-страница.
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    В моей задаче PHP генерирует XML, затем к нему применяется XSLT, и должна получиться PHP-страница.<<<
    конечно же я не знаю, как работает PHP<<<
    точно не phpfaq.ru/na_tanke ?
     
  11. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Бог мой. А без XSLT генерировать PHP из PHP нельзя?
    Хотя я где-то слышал о подобном извращении, кто-то в каком-то институте занимался именно этим - писал программы на xml, а затем генерил из XML PHP.

    Мда, Ну что я могу посоветовать - только почитать документацию по XSLT.
    Вообще, если я правильно помню данные в CDATA не должны преобразовываться.
     
  12. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    > А без XSLT генерировать PHP из PHP нельзя?
    Нельзя - речь идет об XSLT-преобразовании XML-кода, т.е. вставки PHP-кода находятся в XSLT, а код, который [условно] генерирует XML, вообще не имеет к этим вставкам никакого отношения.

    >Вообще, если я правильно помню данные в CDATA не должны преобразовываться.
    http://en.wikipedia.org/wiki/CDATA
     
  13. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    xml:
    <document><code><![CDATA[
    <?php echo 11 >?]]></code></document>

    xsl:
    ...
    <xsl:value-of select="code" disable-output-escaping="yes"/>


    Это?
     
  14. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  15. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    >Это?

    Почти, только мне нужно сделать PHP-вставку в сам XSLT-шаблон, а не в XML-документ.
     
  16. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    <xsl:text disable-output-escaping="yes">&lt;?php echo 123 ?&gt;</xsl:text>

    Или
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:eek:utput method="text" encoding="utf-8"/>
    <xsl:template match="/">
    <xsl:text><![CDATA[<?php echo 123 ?>]]></xsl:text>
    </xsl:template>
    </xsl:stylesheet>
     
  17. Michael

    Michael Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    54
    Симпатии:
    0
    сработало! Большое спасибо!