Hallo da,
ich versuch attribute zu zählen die einen bestimmten wert aufweisen.
hier mein lösungsansatz der nicht geht:
bitte hilf mir jemand diese lösung zu korrigieren um auf das gewünschte ergebnis zu kommen - ein anderer lösungsansatz ist zwar auch interessant aber ich würde hier gerne meinen fehler finden.
ich versuch attribute zu zählen die einen bestimmten wert aufweisen.
hier mein lösungsansatz der nicht geht:
Code:
<services> <element type="uint8" size="6" name="value"> <description> </description> </element> <element type="uint8" size="6" name="value"> <description> </description> </element> <element type="sint8" size="6" name="value"> <description> </description> </element> </services>
Code:
<xsl:template match="services"> <xsl:text> test </xsl:text> <xsl:call-template name="template_type_counter"> <xsl:with-param name="param_u8_count" select="0"/> <xsl:with-param name="param_s8_count" select="0"/> </xsl:call-template> <xsl:text> endtest </xsl:text> </xsl:template> <xsl:template name="template_type_counter"> <xsl:param name="param_u8_count"/> <xsl:param name="param_s8_count"/> <xsl:text> start </xsl:text><xsl:value-of select="$param_u8_count"/><xsl:text> </xsl:text> <xsl:for-each select="/element"> <xsl:value-of select="$param_u8_count"/><xsl:text> </xsl:text><xsl:value-of select="@type"/><xsl:text> </xsl:text> <xsl:choose> <xsl:when test="@type = 'uint8'"> <xsl:call-template name="template_type_counter"> <xsl:with-param name="param_u8_count" select="$param_u8_count + 1"/> <xsl:with-param name="param_s8_count" select="$param_s8_count"/> </xsl:call-template> </xsl:when> <xsl:when test="@type = 'sint8'"> <xsl:call-template name="template_type_counter"> <xsl:with-param name="param_u8_count" select="$param_u8_count"/> <xsl:with-param name="param_s8_count" select="$param_s8_count + 1"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:if test="position() = last()"> <xsl:text> </xsl:text><xsl:value-of select="$param_u8_count"/><xsl:text> </xsl:text><xsl:value-of select="$param_s8_count"/> </xsl:if> </xsl:template> </xsl:stylesheet>
Comment