我必须在复制整个部分时使父节点内的所有节点值都大写。
例如: ATPM / 37 zATP - 杂项例外空白文本框没有数字1表示 改成: ATPM / 37 ZATP - MISCELLANEOUS EXCEPTIONS BLANK TEXT BOX没有#1 SAID
答案 0 :(得分: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 :(得分: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>