Subject: Re: [xsl] Return value from a template 2... From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 23 Jan 2008 09:21:14 GMT |
> I want to return a value from a template(getIdList) templates never return values (in the sense of a function return). Anything they generate is always added to the current output (whetehr that is the stylesheet result, or a variable). You haven't said what ypur input looks like, or what output ypiu want or what transform you are trying to do, so I can make some comments on the code you posted but can't really suggest any code that you need, although I make a blind guess at the end. <xsl:template match="/root"> <xsl:variable name="idList"> <xsl:call-template select="/root/vid" name="getIdList" /> </xsl:variable> <xsl:value-of select="$idList"/> </xsl:template> This is a syntax error you can not have a select attribute on call-template so you should get no output. If you delete that then it generates a variable idList with a document node with child nodes anything generated by getIdList, it then discards any nodes in that variable and outputs the string value of $idList. <xsl:for-each select="."> doing a for-each over a single node is a no-op, so it is like not having the for-each except that variable definitions have skope the current element so it restricts the scope of $idList" select="concat($var, there is no variable $var in scope at this point (you haven't defined var yet) What processor are you using, again this should have given you a syntax error and no output. </xsl:for-each> if the definition of $var had been syntactivcally correct, it would have gone out of scope at this point. <xsl:value-of select="$var"/> so this is a reference to an undefined variable. I suspect that what you want is <xsl:template match="/root"> <xsl:for-each select="vid"> <xsl:value-of select="."/> <xsl:if test="position()!=last()">,</xsl:if> </xsl:for-each> </xsl:template> or, in xslt2 <xsl:template match="/root"> <xsl:value-of select="vid" separator=","/> </xsl:template> With no variables at all David ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Return value from a templ, Michael Kay | Thread | [xsl] RE: xsl-list Digest 23 Jan 20, Laura Porter |
RE: [xsl] Return value from a templ, Michael Kay | Date | [xsl] Select attribute using a vari, strawks |
Month |