Both the earlier suggestions are good.
To answer Greg's question about the parameters, a named template takes the
calling context as its context, so no parameter is needed here.
To combine the suggestions, consider the following:
<xsl:template name="fillcell">
<xsl:value-of select="."/>
<xsl:if test="not(string())"> </xsl:if>
</xsl:template>
<xsl:template match="cell">
<td>
<xsl:call-template name="fillcell"/>
</td>
</xsl:template>
Cheers,
Wendell
At 05:06 PM 11/13/2002, Greg wrote:
At 02:50 PM 11/13/2002, you wrote:
<td>
<xsl:choose>
<xsl:when test="string-length() > 0"><xsl:value-of select="."
/></xsl:when>
<xsl:otherwise> </xsl:otherwise>
</xsl:choose>
</td>
This gets monotonous after a while. It would be nice if <xsl:value-of>
could take an attribute which would provide a default value if the select
produces an empty result!
Make a template that does just that.
<xsl:template name="monotonous">
<xsl:param name="str" select="." />
<xsl:value-of select="$str" />
<xsl:if test="string-length() = 0">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:call-template>
and then you have
<td>
<xsl:call-template name="monotonous" />
</td>
I don't think you need to explicitly pass the parameter because of the
default value, but play with it to make sure. You may need to include the line
<xsl:with-param name="str" select="." />
but I hope not.
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list