Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Экранирование спец. символов в XML


Автор: Juggernaut 10.11.2008, 16:26
Дано:
Есть XML, в некоторых узлах которого встречаются специальные символы XML.
Например:
Код

<title>Предмет ценой в 100$</title>


При обработке данного XML посредтвом XSLT происходит ошибка при попытке получения значения данного узла:
Код

<xsl:value-of select="title"/> 
<!-- не пашет-->

Есть ли возможность решить данную проблему не прибегая к созданию специальных шаблонов для экранирования спец. символов?



Автор: jsa 11.11.2008, 04:49
Цитата(Juggernaut @  10.11.2008,  21:26 Найти цитируемый пост)
<!-- не пашет-->

а поподробнее, 

Автор: Juggernaut 11.11.2008, 16:17
Код

<xsl:value-of select="title"/>

именно на этой строчке кода все валится, если её убрать все ОК
остальная логика не важна

Автор: jsa 11.11.2008, 18:23
Цитата(Juggernaut @  11.11.2008,  21:17 Найти цитируемый пост)
именно на этой строчке кода все валится, если её убрать все ОК

ну вообще-то с точки зрения xslt все верно, и должно работать на ура, а валится как именно

Автор: Juggernaut 12.11.2008, 12:00
У меня была проблема именно со знаком "доллара" - $ поскольку XSLT воспринимает его как начало переменной.
Нужно было его экранировать.
Почитал мануал на наш XSLT-процессор и выяснил, что чтобы вывести просто символ '$' нужно его экранировать вот так: '$$'
В общем, как всегда RTFM.  smile 
Все, тему можно закрывать.

Автор: jsa 12.11.2008, 12:15
Цитата(Juggernaut @  12.11.2008,  17:00 Найти цитируемый пост)
Почитал мануал на наш XSLT-процессор

ради интереса, Ваш это который?

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