使用XSLT替换带下划线的空格

时间:2014-02-21 04:33:52

标签: xml xslt

在我的XSLT中,我将两个数据元素一起折叠以创建用于导入图像的文件名。以下模板连接元素并使用变量将任何大写字母转换为小写。但是一些Surname和FirstName元素中有空格我们需要用“_”(下划线)替换。如何将此功能添加到此功能?

这是模板(我包含了变量供参考):

...<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 个答案:

答案 0 :(得分:1)

您可以以小写形式添加大写和下划线(“_”)的另一个字符空间:

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