Subject: RE: [xsl] Add order of nodes From: "Robert Soesemann" <rsoesemann@xxxxxxxxxxx> Date: Wed, 9 Feb 2005 13:01:45 +0100 |
This does not work as there may be other nodes between and before <fragment>. It might look like this and with your solution I get the wrong positions. > <doc> <foo/> > <fragment pos="3">...</fragment> > <fragment pos="4">...</fragment> <bar> .. </bar> > <fragment pos="11">...</fragment> > ... > </doc> -----Original Message----- From: Joris Gillis [mailto:roac@xxxxxxxxxx] Sent: Mittwoch, 9. Februar 2005 13:02 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Add order of nodes Tempore 12:51:02, die 02/09/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Robert Soesemann <rsoesemann@xxxxxxxxxxx>: > <doc> > <fragment>...</fragment> > <fragment>...</fragment> > <fragment>...</fragment> > ... > </doc> > > I need a <xsl:template match="fragment"> that produces this output: > > <doc> > <fragment pos="1">...</fragment> > <fragment pos="2">...</fragment> > <fragment pos="3">...</fragment> > ... > </doc> > > Can I use position() for that? Yes indeed. use this tremplate: <xsl:template match="fragment"> <xsl:copy> <xsl:attribute name="pos"><xsl:value-of select="position()"/></xsl:attribute> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> (in conjunction with this template) <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> regards, -- Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041) "Et ipsa scientia potestas est" - Francis Bacon , Meditationes sacrae
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Add order of nodes, David Carlisle | Thread | Re: [xsl] Add order of nodes, David Carlisle |
Re: [xsl] Add order of nodes, Joris Gillis | Date | Re: [xsl] Add order of nodes, David Carlisle |
Month |