I suspect that ypu don't want to use call-template and named templates
at all here, and just use apply-templates which would simplify your code
greatly.
It's not clear what output you want, you suggested code allways makes
table rows tr containing a single td but you showed an indented output
teleNumbers
telList
numbers
teleType H
teleNumber 0145454545
what html do you intend here?
It's not clear how your initial selection .//response/*/response/*" fits
with your input document (the sample you showed didn't have a response
element but I'm assuming that what you showed was teh content of a
typical <response> ?
call-template does not change the current node so as you recurse along
your $children the current node always stays teh same so
<xsl:value-of select="name()"/> will produce the same text at each
stage,
I think you want something like
<table>
<xsl:apply-templates" select=".//response/*/response/*" mode="table"/>
</table>
<xsl:template match="*" mode="table">
<tr>
<td><xsl:value-of select="name()"/></td>
<xsl:if test="not(*)"><td><xsl:value-of select="."/></td></xsl:if>
</tr>
</xsl:template>
David
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--