I added an additional level <G2> to a hierarchy of <Groups> and <G1>.
I want to assign numbers to the newly created <G2> nodes, which identify
them in the document. I managed to do so using <xsl:number>.
Now it would be perfect if the numbering was done as a strict sequence
of consecutive integers, meaning 1,2,3 instead of, say, 1,3,5.
Can this be done in 1.0, or 2.0, for that matter?
Michael Ludwig
milu(_at_)colinux:~/Werkstatt/xsl > expand -t2 groups.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<Groups>
<G1>
<M>eins</M>
<M>zwei</M>
<M>drei</M>
<M>vier</M>
<M>fünf</M>
<M>sechs</M>
<M>sieben</M>
</G1>
<G1>
<M>acht</M>
<M>neun</M>
<M>zehn</M>
<M>elf</M>
<M>zwölf</M>
</G1>
</Groups>
milu(_at_)colinux:~/Werkstatt/xsl > expand -t2 groups.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" encoding="iso-8859-1"/>
<xsl:strip-space elements="*"/>
<!-- How many M elements per G2 element? -->
<xsl:variable name="M-per-G2" select="2"/>
<xsl:template match="G1">
<xsl:copy>
<xsl:apply-templates
select="M[ position() mod $M-per-G2 = 1 ]" mode="group"/>
</xsl:copy>
</xsl:template>
<xsl:template match="M" mode="group">
<G2><!-- I want this GR to be numbered sequentially. -->
<xsl:attribute name="no">
<xsl:number level="any"/>
</xsl:attribute>
<xsl:copy-of select="
. | following-sibling::M[position() < $M-per-G2]"/>
</G2>
</xsl:template>
<xsl:template match="@*|node()"><!-- copy template -->
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>
</xsl:stylesheet>
milu(_at_)colinux:~/Werkstatt/xsl > xsltproc groups.xsl groups.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<Groups>
<G1>
<G2 no="1">
<M>eins</M>
<M>zwei</M>
</G2>
<G2 no="3">
<M>drei</M>
<M>vier</M>
</G2>
<G2 no="5">
<M>fünf</M>
<M>sechs</M>
</G2>
<G2 no="7">
<M>sieben</M>
</G2>
</G1>
<G1>
<G2 no="8">
<M>acht</M>
<M>neun</M>
</G2>
<G2 no="10">
<M>zehn</M>
<M>elf</M>
</G2>
<G2 no="12">
<M>zwölf</M>
</G2>
</G1>
</Groups>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--