У меня есть этот 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
Сначала у меня было объявление переменной в шаблоне, где она использовалась, а потом все заработало. Перенесено, потому что мне нужно использовать такое же количество и в других шаблонах.
Как / где я могу объявить, что эта переменная / параметр на самом деле является числом?
number
, чтобы она работала в тесте. Но завтра проверю атрибутas
:) - person Svish   schedule 19.02.2013