我有一个jsp页面,它将xml字符串参数传递给xsl中的模板。
我在jsp中的代码是这样的:
<x:transform doc="${transactions}" xslt="${xslTransaction}">
<x:param name="xmlCategory" value="${xmlCategory}"/>
</x:transform>
但是当我打印xmlCategory
的值并查看页面来源时。它给了我这样的:
<categories><category><id>1</id><type>true</type><name>Salary</name><userId>1</userId></category></categories>
而不是:
<categories><category><id>1</id><type>true</type><name>Salary</name><userId>1</userId></category></categories>
我认为正因为如此,我无法将xmlCategory
转换为node-set to iterate。
有人可以向我解释这个案例以及如何解决它吗?
答案 0 :(得分:1)
我不确定在您的设置环境中是否可以这样做,但您可以尝试在XSLT中使用disable-output-escaping="yes"
。
<xsl:value-of disable-output-escaping="yes" select="..." />
这样可以防止所选字符串中的字符被转义。
答案 1 :(得分:0)
您的问题似乎是您的服务器正在转义XML特殊字符。 我建议使用类似Apache Commons StringEscapeUtils.unescapeHTML4的方法将它们解码回实际的UTF-8字符,或编写自己的代码来获取转义字符并适当地替换它们(如“&amp; lt”到“&lt; “)