複製整個部分時,我必須使父節點內的所有節點值大寫。如何在做<xsl:copy-of select =「./*」/>時使用大寫字母
例如: ATPM/37 zATP - 無編號1其他例外空白文本框中所述 更改爲: ATPM/37 ZATP - 雜項EXCEPTIONS空白文本框而不NUMBER 1 SAID
複製整個部分時,我必須使父節點內的所有節點值大寫。如何在做<xsl:copy-of select =「./*」/>時使用大寫字母
例如: ATPM/37 zATP - 無編號1其他例外空白文本框中所述 更改爲: ATPM/37 ZATP - 雜項EXCEPTIONS空白文本框而不NUMBER 1 SAID
在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'" />
代替
的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>
請記住格式化您的代碼示例,以便其他人可以輕鬆讀取它們。謝謝! – 2012-03-28 06:14:32