Subject: [xsl] grouping problem From: 04083259@xxxxxxxxxxxxx Date: Thu, 31 Mar 2005 11:48:02 +0100 (BST) |
hi every one i am having a problem of grouping the dig elements from the xml database below, i am trying to group all <dig> elements to be childs of their proceding sibling the one has different name rather then dig so all the dig after MoToooooooooooo will be childeren of this element and the same with the CoTooooooooooooo and SoTooooooooooooo <top> <MoTooooooooooooooooooooo/> <dig>0.3</dig> <dig>1.2</dig> <CoToooooooooooooooooooo /> <dig>4</dig> <dig>0</dig> <dig>4</dig> <dig>8</dig> <dig>12.0</dig> <dig>-32</dig> <dig>16</dig> <dig>0</dig> <dig>-6</dig> <dig>0</dig> <dig>0</dig> <dig>5</dig> <dig>4</dig> <dig>10</dig> <dig>-3</dig> <dig>10</dig> <dig>-103</dig> <dig>50</dig> <dig>-83</dig> <dig>90</dig> <dig>-42</dig> <dig>0</dig> <dig>0</dig> <dig>6</dig> <dig>20</dig> <dig>12</dig> <dig>30</dig> <dig>7</dig> <dig>-2</dig> <dig>12</dig> <dig>-18</dig> <dig>17</dig> <dig>-40</dig> <dig>17</dig> <dig>-55</dig> <dig>77</dig> <dig>-2</dig> <dig>-40</dig> <dig>25</dig> <dig>-20</dig> <dig>35</dig> <dig>30</dig> <dig>20</dig> <dig>35</dig> <dig>65</dig> <dig>-30</dig> <dig>71</dig> <dig>-50</dig> <SoToooooooooooooooooooooo/> <dig>4</dig> <dig>-170</dig> <dig>4</dig> <dig>-200</dig> <dig>-7</dig> <dig>9</dig> </top> to solve this problem i used the below recurseve templates to group the dig after CoTooooooooooooo to group of 6(s) it has a problem can i get some assistant : thanks <xsl:template match="top"> <top> <xsl:call-template name="SecoundTemplate" > <xsl:with-param name="nodes" select="dig" /> </xsl:call-template> </top> </xsl:template> <xsl:template name="SecoundTemplate" > <xsl:param name="nodes" /> <xsl:choose> <xsl:when test="name(preceding-sibling::*[1]) !='CoTooooooooooooooo' "/> <xsl:otherwise> <CoTo> <xsl:call-template name="FinalTemplate"> <xsl:with-param name="nodes" select="$nodes[position() >0 ]" /> </xsl:call-template> </CoTo> <xsl:call-template name="SecoundTemplate"> <xsl:with-param name="nodes" select="$nodes[position() >6]" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="FinalTemplate" > <xsl:param name="nodes" /> <xsl:param name="count" select="1" /> <xsl:choose> <xsl:when test="($count = 7) or (name(following-sibling::*[1]) !='$nodes') ) "/> <xsl:otherwise> <dig><xsl:value-of select="$nodes[1]" /> </dig> <xsl:call-template name="FinalTemplate"> <xsl:with-param name="nodes" select="$nodes[position() > 1]" /> <xsl:with-param name="count" select="$count + 1" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] RE: Resolving Variable Re, David Carlisle | Thread | Re: [xsl] grouping problem, David Carlisle |
RE: [xsl] Possible to pass 'empty s, Michael Kay | Date | RE: [xsl] Possible to pass 'empty s, Andrew Welch |
Month |