我有以下<a>
标记:
<a href="http://myserver/_forms?url={@FileRef}&id=5">...</a>
其中一个文件名为"File's got apostrophe.xml"
。 XSL的输出是:
<a href="http://myserver/_forms?url=/blah/File&#39;s got apostrophe.xml&id=5">...</a>
问题是撇号是否被转义(两次?)到&#39;
,这会破坏链接。
我也尝试使用<xsl:attribute>
,结果相同:
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('http://myserver/_forms?url=', @FileRef, '&id=5')"
disable-output-escaping="yes" />
</xsl:attribute>
</a>
输出<xsl:value-of select="@FileRef" disable-output-escaping="yes" />
效果很好 - 未转义的值会打印在页面上。
如何在不转义字符串的情况下设置属性?
答案 0 :(得分:17)
您可以生成&lt; a&gt;作为文字:
<xsl:text disable-output-escaping="yes"><a href="</xsl:text>
<xsl:value-of select="concat('http://myserver/_forms?url=', @FileRef, '&id=5')" disable-output-escaping="yes" />
<xsl:text disable-output-escaping="yes">" >/a<</xsl:text>
答案 1 :(得分:5)
我知道我有点迟到了,但我认为属性标签就是这样,你只是不想连续......
<a>
<xsl:attribute name="href">
http://myserver/_forms?url=<xsl:value-of select="@FileRef" disable-output-escaping="yes" />&id=5
</xsl:attribute>
</a>