Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTML теги в XML 
:(
    Опции темы
starmaster
Дата 3.3.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 29.3.2004

Репутация: нет
Всего: нет



Из текстового поля по форме передаётся текст, далее он с помощью DOM XML и XSLT преобразуется в HTML. Всё бы хорошо, но я хочу разрешить пользователю некоторые теги, он их добавляет с помощью кодов, к примеру , которые затем преобразуются в нормальные HTML-теги <b></b>. Далее вставляем в XML и тут проблема, например из такого XML:

Код

<?xml version="1.0" encoding="windows-1251"?>
<root>
          <post>
                    Some text1
                    <bold>text in bold</bold>
                    Some text2
                    <italic>text in italic</italic>
                    Some text3
                    <bold><italic>text in bold and in italic</italic></bold>
                    Some text4
          </post>
</root>


С помощью XSLT должен получиться результат:

Код

<html>
      <head>
            <title>
                Title
             </title>
      </head>

       <body>
                Some text1 <b>text in bold</b> Some text2 <i>text in italic</i> Some text3 <b><i>text in bold and in italic</i></b> Some text4
       </body>
</html>


Как это преобразование реализовать лучше всего?

Это сообщение отредактировал(а) starmaster - 3.3.2006, 10:27
PM MAIL WWW ICQ   Вверх
starmaster
Дата 4.3.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 29.3.2004

Репутация: нет
Всего: нет



Всё оказалось намного проще чем я думал. И делается это простым XSLT, у тега <xsl:value-of/> есть замечательный аттрибут disable-output-escaping :-)
PM MAIL WWW ICQ   Вверх
capitan
Дата 25.4.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



Цитата

disable-output-escaping

Вопрос в следующем: данный атрибут работает только в ишаке. Можно как-то реализовать вывод всех тегов хотя бы под мазилу?
А то они все эскейпятся.  smile 
PM MAIL WWW ICQ   Вверх
Alx
Дата 26.4.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



судя по условию я вообще проблемы не вижу..

Код

<xsl:template match="bold">
  <b><xsl:apply-templates/></b>
</xsl:template>
<xsl:template match="italic">
  <i><xsl:apply-templates/></i>
</xsl:template>



--------------------
PM MAIL WWW ICQ   Вверх
capitan
Дата 26.4.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



Alx
На условие внимание не обращай, оно не моё. Просто не стал делать новую тему.
Предположим в <post>  встречаются <ul>, <il> и тому подобные теги.
PM MAIL WWW ICQ   Вверх
Alx
Дата 26.4.2007, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



меня тоже похожий вопрос волнует:
я в xslt (<xsl:output method="html"/>) пишу такое:

1.
<script>alert(1>0)</script>
выводит:
<script>alert(1&gt;0)</script>

2.
<script>alert(1&gt;0)</script>
выводит:
<script>alert(1&gt;0)</script>

3.
<script>alert(0&lt;1)</script>
выводит:
<script>alert(0&lt;1)</script>

и, наконец
4.
<script>alert(0<1)</script>

вообще выхывает ошибку парсера (PHP:SimpleXML)... что делать??

Это сообщение отредактировал(а) Alx - 26.4.2007, 19:15


--------------------
PM MAIL WWW ICQ   Вверх
check
Дата 3.5.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 1
Всего: 23



2Alx

Должно получиться так
Код

<script>
   //<![CDATA[

    //любой код

    //]]>
</script>


Это сообщение отредактировал(а) check - 3.5.2007, 10:28
PM MAIL   Вверх
Alx
Дата 3.5.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



check, 
пробелма в том, что у меня в срипте используются теги XSL (xsl:value-of, например).
есть пихать в CDATA, то они экранируются.. а мне это не нужно.. мне бы только с > и < разобраться...


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.