|
Subject: [xsl] xsl:for-each-group: start groups depending on number of group members? From: Yves Forkl <Y.Forkl@xxxxxx> Date: Fri, 27 Apr 2007 19:18:26 +0200 |
<root> <A/> <sub>a1</sub> <B/> <sub>b1</sub> <sub>b2</sub> <sub>b3</sub> <C/> <sub>c1</sub> <sub>c2</sub> </root>
<B_new> <sub_new>b1</sub_new> <sub_new>b2</sub_new> <sub_new>b3</sub_new> </B_new>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<xsl:for-each-group
select="root/*"
group-starting-with="A|B|C">
<xsl:apply-templates
select="current-group()[1]"
mode="groups_at_root_level"/>
</xsl:for-each-group>
</xsl:template><!-- don't care for them now --> <xsl:template match="A|C" mode="groups_at_root_level"/>
<xsl:template match="B" mode="groups_at_root_level">
<B_new>
<xsl:variable name="items_total" select="count(current-group())"/>
<xsl:for-each-group
select="current-group()"
group-starting-with="
B|
sub[not(
preceding-sibling::*[position() lt $items_total][A])]">
<xsl:apply-templates select="current-group()"/>
</xsl:for-each-group>
</B_new>
</xsl:template> <xsl:template match="sub">
<sub_new>
<xsl:apply-templates/>
</sub_new>
</xsl:template>| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XSL to ODF/OOXML, David Carlisle | Thread | Re: [xsl] xsl:for-each-group: start, Wendell Piez |
| [xsl] XSL to ODF/OOXML, Steve | Date | RE: [xsl] XSL to ODF/OOXML, cknell |
| Month |