我正在尝试创建一个变量,用于存储以init cap形式输入的字符串(TypeInput)的值。这个新变量将在我的样式表中的不同位置使用。我创建了一个模板,调用它来将输入字符串转换为init cap形式。然而,当我运行样式表时,结果变量TypeInputInitCap在调试器中显示为NodeSet(1),并且在输出中没有输出文本。有任何想法吗?请参见以下示例。
<xsl:variable name="TypeInputInitCap">
<xsl:call-template name="ConvertToInitCapString">
<xsl:with-param name="str" select="$TypeInput"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:template name="ConvertToInitCapString">
<xsl:param name="str"></xsl:param>
<!-- Extract each component of the name delimited by . -->
<xsl:variable name="TokenNodeSet">
<xsl:for-each select="tokenize($str, '.')">
<!-- Init cap each component -->
<xsl:value-of select="concat(upper-case(substring(.,1,1)), lower-case(substring(.,2)))"></xsl:value-of>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="$TokenNodeSet">
<xsl:value-of select="."></xsl:value-of>
<xsl:if test="not(last())">
<xsl:text>.</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
str
参数的值)的例子。 - LarsH