Subject: Re: [xsl] list of Values From: David Tolpin <dvd@xxxxxxxxxxxxxx> Date: Thu, 27 Nov 2003 23:18:28 +0400 (AMT) |
[ Charset ISO-8859-1 unsupported, converting... ] > Hi, > How can I create a list of values? > > I want select n values from the xml file and put them in one list > to pass with-param to one template, something like this: > > <xsl:call-template name="tempName"> > <xsl:with-param name="$paramName" select="$listValues"/> > > </xsl:call-template> > > where listValue have for exemple the elements 'a' , 'b', 'c', 'd' > > after that I want shift paramName to use each of these values... If the values are present in the source XML file, then to accumulate the values in a data structure one can use node-set union operation. One can later iterate (for-each) through the node-set or pass and increment position in the node-set as a parameter for the template. For example, the simple stylesheet below uses node-set to implement a grouping algorithm. <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template name="group-n"> <xsl:param name="e" select="."/> <xsl:param name="es" select="."/> <xsl:param name="i">1</xsl:param> <xsl:param name="n"/> <xsl:param name="group">group</xsl:param> <xsl:variable name="enext" select="$e/following-sibling::*[1]"/> <xsl:choose> <xsl:when test="$i = $n"> <xsl:element name="{$group}"> <xsl:apply-templates select="$e|$es"/> </xsl:element> <xsl:for-each select="$enext"> <xsl:call-template name="group-n"> <xsl:with-param name="group" select="$group"/> <xsl:with-param name="n" select="$n"/> </xsl:call-template> </xsl:for-each> </xsl:when> <xsl:otherwise> <xsl:call-template name="group-n"> <xsl:with-param name="group" select="$group"/> <xsl:with-param name="i" select="$i+1"/> <xsl:with-param name="n" select="$n"/> <xsl:with-param name="e" select="$enext"/> <xsl:with-param name="es" select="$es|$enext"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:transform> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: list of Values, Dimitre Novatchev | Thread | [xsl] Search a string, Ram |
[xsl] Re: how to optimize recursive, Dimitre Novatchev | Date | Re: [xsl] how to optimize recursive, FC |
Month |