Re: [xsl] Passing xml nodes to a function

Subject: Re: [xsl] Passing xml nodes to a function
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 9 Aug 2006 16:19:27 +0100
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

Current Thread