2016-02-05 2 views
0

У меня есть страница jsp, передающая параметр строки xml в шаблон в xsl.Как получить необработанные данные в xsl

Мой код в JSP, как это:

<x:transform doc="${transactions}" xslt="${xslTransaction}"> 
    <x:param name="xmlCategory" value="${xmlCategory}"/> 
</x:transform> 

Но когда я печатаю значение xmlCategory и просмотреть исходный код страницы. Это дает мне так:

&lt;categories&gt;&lt;category&gt;&lt;id&gt;1&lt;/id&gt;&lt;type&gt;true&lt;/type&gt;&lt;name&gt;Salary&lt;/name&gt;&lt;userId&gt;1&lt;/userId&gt;&lt;/category&gt;&lt;/categories&gt; 

Вместо:

<categories><category><id>1</id><type>true</type><name>Salary</name><userId>1</userId></category></categories> 

Я думаю, что из-за этого я не могу преобразовать xmlCategory в набор узлов для итерации.

Может ли кто-нибудь объяснить мне этот случай и как его исправить?

ответ

0

Я не уверен, что это возможно в контексте вашей установки, но вы можете попробовать использовать disable-output-escaping="yes" в XSLT.

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

Это должно препятствовать экранированию символов в выбранных строках.

0

Ваша проблема заключается в том, что ваш сервер ускользает от специальных символов XML. Я предлагаю смотреть в расшифровке их обратно в реальный UTF-8 символов, используя что-то вроде Apache Commons StringEscapeUtils.unescapeHTML4 или написав собственный код, который принимает экранированные символы и заменяет их соответствующим образом (например, «& ЛТ» в «<»)

Смежные вопросы