Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Как заменить комбинации символов &lt, &gt на <, >?


Автор: Barvetal 11.4.2006, 09:38
Всем привет!

Есть xml, в тегах которого содержится html-код. Например:
Код
<?xml version="1.0" encoding="UTF-8"?>
<par>&lt;i&gt;01.01.2001 14:32:06&lt;/i&gt;&lt;h3 align=center&gt; bla-bla-bla</par>

Как видите, в коде содержатся &lt и &gt вместо символов < и >.

Cоответственно, если наложить xsl-преобразование, и воспользоваться javax.xml.transform, то в результирующем html-файле получим также эти значения(&lt,&gt), а мне нужно, чтобы они преобразовались в реальные теги результирующего html-файла.

Соответственно, вопрос: есть ли нормальный стандартный способ подмены в строке или при xslt-трансформации буквосочетаний &lt, &gt, &amp, &quot и иже с ними на соответствующие символы <, >, &, "?

Всем заранее спасибо!

Автор: powerOn 11.4.2006, 10:17
Банальное решение: читаешь файл в текстовый буфер, с помощью регуляных выражений и ReplaceAll заменяешь комбинации символов, сохраняешь файл.

P.S.: Извиняюсь, я не силен в xslt-трансформациях, но думаю такая проблема всетаки должна решаться их средствами.

Автор: Barvetal 11.4.2006, 12:06
Разобрался!!!

Нужно в теги xsl:text и xsl:value-of вписать disable-output-escaping="yes".
Например:
<xsl:text disable-output-escaping="yes">&gt;</xsl:text>

Автор: kosooq 20.11.2009, 20:59
случайно отправил сообщение,сорри

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)