Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TEXT2XML 
V
    Опции темы
tishaishii
Дата 23.7.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



XML:
Код


<root><![CDATA[
&lt;a&gt;test&lt;/a&gt;
]]></root>



XSLT:
Код

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="&ns_xslt;" xmlns="&ns_xhtml;">
    <xsl:template match="/">
<html><body>
        <xsl:value-of select="." disable-output-escaping="yes"/>
</body></html>
    </xsl:template>
</xsl:stylesheet>


Желаемый результат:
Код

<html><body><a>test</a></body></html>


Это сообщение отредактировал(а) tishaishii - 23.7.2011, 15:56
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 25.7.2011, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Вряд ли этот результат можно получить стандартными средствами. Дело в том, что тут вся проблема из-за двойного эскейпинга. Блок CDATA выполняет эскейпинг сам по себе, а тут еще в него помещен текст, который уже обработан. То есть в результате получается, что в исходном документе содержится вот такой текст
Код

<root>
&amp;lt;a&amp;gt;test&amp;lt;/a&amp;gt;
</root>

 Надо в исходном документе либо не использовать CDATA вообще и тогда это будет выглядеть так
Код

<root>
&lt;a&gt;test&lt;/a&gt;
</root>

Либо, если текст еще не разобран, то блок CDATA уже должен содержать текст как есть
Код

<root><![CDATA[
<a>test</a>
]]></root>



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
tishaishii
Дата 14.8.2011, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



Хочется уточнить:

Код
<root><![CDATA[<b>test</b>]]></root>


Код
<xsl:stylesheet version="1.0" xmlns:xsl="&ns.xslt;" xmlns="&ns.xhtml;">
    <xsl:template match="/">
<html><body>
    <xsl:value-of select="." disable-output-escaping="yes"/>
</body></html>
    </xsl:template>
</xsl:stylesheet>


Работает в IE8, как ожидалось.
В Firefox v5.0.1, почему-то, выводит текст:
Код
<b>test</b>


В http://www.gibdon.com/2008/05/firefox-xslt...t-escaping.html предлагается заменить "value-of" на "copy-of".

Код
<xsl:stylesheet version="1.0" xmlns:xsl="&ns.xslt;" xmlns="&ns.xhtml;">
    <xsl:template match="/">
<html><body>
    <xsl:copy-of select="root/text()"/>
<!--
    <xsl:apply-templates/>
-->
</body></html>
    </xsl:template>

<!--
<xsl:template match="root/text()">
     <xsl:copy-of select="."/>
</xsl:template>
-->

</xsl:stylesheet>


Использование пользователем JavaScript для выполнение работы XSLT-процессора считаю неоправданным.

Результат получить не удалось.

Это сообщение отредактировал(а) tishaishii - 14.8.2011, 20:16
PM MAIL ICQ Skype   Вверх
magelan
Дата 26.9.2011, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



попробуйте, вместо copy-of

Код

<xsl:value-of select="root/text()" disable-output-escaping="yes" />


если двойного эсекейпинга нет (то о чем писал ДядяВова), то получите что хотите.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




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


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

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