Subject: RE: [xsl] transformation help From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 14 Jun 2004 08:54:13 +0100 |
In XSLT 2.0 you can do this with <xsl:for-each-group select="*" group-starting-with="category"> <category name="{.}"> <xsl:copy-of select="current-group() except ."/> </category> </xsl:for-each-group> In 1.0, you can do: <xsl:for-each select="category"> <category name="{.}"> <xsl:copy-of select="following-sibling::item[generate-id(preceding-sibling::category[1]) = generate-id(current())]"/> </category> </xsl:for-each> In English, you are copying the following items whose imediately preceding category is the current category. Michael Kay > -----Original Message----- > From: Marcus B. Irven [mailto:marcus@xxxxxxxxxxxxxxx] > Sent: 14 June 2004 09:20 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] transformation help > > I have an xml doc in the form of > > <doc> > <category>cat 1</category> > <item>item 1</item> > <item>item 2</item> > <category>cat 1</category> > <item>item 3</item> > <item>item 4</item> > <item>item 5</item> > </doc> > > and i want to transform it into > > <doc> > <category name=3D"cat 1"> > <item>item 1</item> > <item>item 2</item> > </category> > <category name=3D"cat 2"> > <item>item 3</item> > <item>item 4</item> > <item>item 5</item> > </category> > </doc> > > how should i go about this? > > Thanks, > Marcus > > > --+------------------------------------------------------------------ > 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@xxxxxxxxxxxxxxxxxxxxxx> > --+-- > >
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
transformation help, Marcus B. Irven | Thread | RE: [xsl] transformation help, M. David Peterson |
Re: [xsl] Stumped on why a field is, Deirdre Saoirse Moen | Date | transformation help, Marcus B. Irven |
Month |