|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] grouping problem
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>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








