在复制整个部分时,我必须将父节点内的所有节点值都大写。
例如:ATPM/37 zATP-其他异常空白文本框,无数字1更改为:ATPM/37 ZATP-杂项异常没有数字1的空白文本框
在XSLT2.0中,尝试添加
<xsl:template match="text()">
<xsl:value-of select="upper-case(.)"/>
</xsl:template>
在XSLT1.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>