2014-02-21 84 views
0

在我的XSLT中,我將兩個數據元素一起摺疊以創建一個文件名來導入圖像。以下模板將元素連接起來,並使用變量將任何大寫字母轉換爲小寫字母。但是一些Surname和FirstName元素在它們中有空格,我們需要用「_」(下劃線)替換它們。如何將該功能添加到此功能?使用XSLT替換帶下劃線的空格

這裏是模板(我供您參考變量):

...<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> 
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />... 

<xsl:template match="Consultant"> 
<consultant> 
<consultantphoto> 
<xsl:attribute name="href"> 
<xsl:text>file://images/</xsl:text> 
<xsl:value-of select="translate(Surname, $uppercase, $smallcase)"/> 
<xsl:text>_</xsl:text> 
<xsl:value-of select="translate(FirstName, $uppercase, $smallcase)"/>  
<xsl:text>.jpg</xsl:text></xsl:attribute> 
</consultantphoto> 
</xsl:text> 
</consultant> 
</xsl:template> 

像一個XML圖像參考此模板的結果:你可以用大寫添加另一個字符空格和下劃線<consultant href="file://surname_firstName" />

回答

1

(」 _「):

<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz_'" /> 
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ '" /> 
+0

其實,切換你的答案,你有它正確的!空格應該在「大寫」變量中,下劃線應該在「小寫字母」中。 –

+0

你也可以使用這種技術來刪除字符嗎?一些名字有「,」(逗號)和「。」 (時期)在他們需要被刪除。 –

+0

是的,你可以做到。你可以使用與上面給出的相同的$ smallcase,並將$大寫更改爲以下內容:

相關問題