答案 0 :(得分:6)
&#A;
是一个编码的换行符。
它和空格是从XSLT中的换行符和空格中保留的。
答案 1 :(得分:6)
只需使用:
<a href="http://{BackSideUrl}/customerlogin.asp?P={DynaCalPath}">
Login to View History of This Request
</a>
这个(使用AVT - 属性 - 值 - 模板)更短,更易读。
几乎所有答案中都解释了报告行为的原因,即属性href
的值(部分)来自包含NL字符的文本节点
这些问题是由纯粹的人类心理现象造成的:只要它被非白色空间包围,我们就会清楚地看到NL,但是每当NL处于非白色空间时我们都是NL盲开始或在一个文本块的末尾。任何XSLT / XML IDE都可以在请求组中显示特殊的“不可见”字符,例如NL和CR。
答案 2 :(得分:2)
混合文本和元素节点时会保留空格。因此,一种解决方案是避免空白开始(如Bart所示),或者执行以下操作,因为格式化得很好,所以可能更具可读性:
<xsl:attribute name="href">
<xsl:text>http://</xsl:text>
<xsl:value-of select="BackSideUrl"/>
<xsl:text>/customerlogin.asp?P=</xsl:text>
<xsl:value-of select="DynaCalPath"/>
</xsl:attribute >
答案 3 :(得分:1)
我自己也不是很熟悉XSLT,但是从一般的编程经验来看,请尝试更改
<xsl:attribute name="href">
http://<xsl:value-of select="BackSideUrl"/>/customerlogin.asp?P=<xsl:value-of select="DynaCalPath"/></xsl:attribute >
到
<xsl:attribute name="href">http://<xsl:value-of select="BackSideUrl"/>/customerlogin.asp?P=<xsl:value-of select="DynaCalPath"/></xsl:attribute >
答案 4 :(得分:1)