我有一个XSLT模板。它被调用,params从Java程序发送给它。
问题是,其中一个变量包含'&'
。
<xsl:value-of select="customerName" />
customerName可能包含'&'
。无论我做什么,我都无法让它呈现。我试过了
replace(customerName, '&', '&')
有什么方法可以让它渲染吗?
答案 0 :(得分:1)
因此输入java参数集包含&
,输出需要&
也可能是XML。
然后使用顶部的output元素来实现此目的。
<xsl:output method="xml"/>
<强> 替代 强>
您也可以尝试在 java 方面进行更正。如果不在&
上工作,则应该使用替换&
。
customerName = customerName.replace(, "&", "&");
在XSLT中,以下可能有效。
replace($customerName, '&', '&amp;')
答案 1 :(得分:0)
试试这个,
<xsl:if test="contains($customerName,'&')">
<xsl:value-of select="concat(substring-before($customerName,'&'),substring-after($customerName,'&'))"/>
</xsl:if>
答案 2 :(得分:0)
要在XSLT环境中运行XML,XML应该具有标准实体,即仅允许ISO实体,Unicode实体等。
如果&#39;&amp;&#39;发现那些字符串应该以&#39;;&#39; (实体表示是&amp; ....;,即实体应以分号结尾,以及那些应该是定义的实体)
这里&#39;&amp;&#39;不是一个实体,&#39;&amp; amp;&#39;或&#39;&amp;#x0026;&#39; 是一个实体。
答案 3 :(得分:0)
我能够解决这个问题。 基本上由于输入参数有&#39;&amp;&#39;,因此它是无效的xml。我不得不对它进行xml编码。