2012-06-11 23 views
0

我有XSLT變量:如何保留XSLT變量傳遞給href的空白?

<xsl:variable name="sRemarks"> 
<xsl:value-of select="remarks"/> 
</xsl:variable> 

我想通過和查看錨HREF代碼,但該值的變量sRemarks有一個白色的空間和進入的空間。

樣本輸出;

Hello! 

Hi! 
+0

您的意思是變量包含空格,並且您希望在將空格傳遞給HREF時將空白去掉? – Utkanos

+0

是的,先生,並保留白色空間。我將打印到textarea:0 – mrrsb

+0

請將XML輸入和所需的HTML輸出顯示爲HTML,而不是您希望HTMl在瀏覽器中呈現。我懷疑這可能是在HTML轉換期間沒有丟失空白,而是在瀏覽器中呈現HTML期間。 –

回答

0

由於變量中有空格,因此您將獲得空格。使它成爲一個單一的線......

<xsl:variable name="sRemarks"><xsl:value-of select="remarks"/></xsl:variable> 

或選擇它

<xsl:variable name="sRemarks" select="remarks" /> 

UPDATE

如果你想真正的空格/回車要保留在HREF中,您需要「urlencode」鏈接。

取自here,如果您使用的是XSLT 2,則應該使用「fn:encode-for-uri」。

月2日更新

正如邁克爾指出,我的答案的第一部分是不正確的變量中的間距不應有所回升(除非你有xml:space="preserve")。

+0

我認爲這個答案是錯誤的。 xsl:variable元素中的空白文本節點不會構成變量值的一部分,除非碰巧在某個範圍內存在xml:space =「preserve」屬性。 –

+0

@MichaelKay - 好呼喊。雖然我仍然相信我的答案中的部分urlencoding是有效的 – freefaller