如何在执行时将大写<xsl:copy-of select= "./*" />



在复制整个部分时,我必须将父节点内的所有节点值都大写。

例如: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>

相关内容

  • 没有找到相关文章

最新更新