我有这个 XSLT:
<xsl:template match="/">
<xsl:variable name="errorCount" select="count($orders/*[1]/cm:Error)" />
<xsl:apply-templates select="@*|node()">
<xsl:with-param name="errorCount" select="$errorCount" tunnel="yes" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="status">
<xsl:param name="errorCount" tunnel="yes" />
<xsl:copy>
<xsl:choose>
<xsl:when test="$errorCount > 0">
<xsl:text>ERROR</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>OK</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
隧道和一切似乎都有效,但转换失败并出现以下错误:
'>' 的第一个操作数的必需项类型是数字;提供的值具有项目类型 xs:string
我首先在使用它的模板中声明了变量,然后它工作得很好。移动它是因为我也需要在其他模板中使用相同的计数。
我如何/在哪里声明这个变量/参数实际上是一个数字?