2012-03-28 63 views
1

複製整個部分時,我必須使父節點內的所有節點值大寫。如何在做<xsl:copy-of select =「./*」/>時使用大寫字母

例如: ATPM/37 zATP - 無編號1其他例外空白文本框中所述 更改爲: ATPM/37 ZATP - 雜項EXCEPTIONS空白文本框而不NUMBER 1 SAID

+0

請記住格式化您的代碼示例,以便其他人可以輕鬆讀取它們。謝謝! – 2012-03-28 06:14:32

回答

1

在XSLT 2.0,嘗試添加

<xsl:template match="text()">
<xsl:value-of select="upper-case(.)"/>
</xsl:template>

在XSLT 1.0,使用

<xsl:template match="text()"> 
    <xsl:value-of select="translate(., $smallcase, $uppercase)" /> 
</xsl:template> 
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> 
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> 

代替

1

xsl:copy-of指令總是不完全相同的副本;您無法使用它來進行復制。爲此,請使用標識模板複製要準確複製的內容,並使用不同的模板來更改要更改的內容。因此:

<xsl:template match="*"> 
    <xsl:copy> 
    <xsl:copy-of select="@*"/> 
    <xsl:apply-templates/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="text()"> 
    <xsl:value-of select="upper-case(.)"/> 
</xsl:template> 
相關問題