Subject: RE: [xsl] Un-nesting elements in XSLT 2.0 From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 11 Nov 2006 00:14:36 -0000 |
Try <xsl:template match="para"> <xsl:for-each-group group-adjacent="self::image or self::table"> <xsl:choose> <xsl:when test="current-grouping-key()"> <xsl:copy-of select="current-group()"/> </xsl:when> <xsl:otherwise> <p><xsl:copy-of select="current-group()"/></p> </xsl:otherwise> </ </ </ What this is doing is to form a series of alternating sequences consisting of a sequence of consecutive images/tables, followed by a sequence of consecutive non-tables-and-images; and you're then wrapping the sequence of non-tables-and-images in a <p> element. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Tristan Stevens [mailto:tristanstevens@xxxxxxxxxxx] > Sent: 11 November 2006 00:01 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Un-nesting elements in XSLT 2.0 > > Hi, > > I've got a problem that I've been pondering over and I'm sure > there's a pattern for doing this. > I have a hierarchical structure that I need to break out, but > things seem to get confusing when mixed content models come into play. > > Example: > > <para> > This is some above image text<sup>See footnote 1</sup> > <image src="image1.gif" alternative="My Image"/> > This is some text in between the image and table. > <table> > <tr> > <td>... > ... > </table> > Some more text to finish the paragraph off. > </para> > > I need to convert this into the following: > > <p>This is some above image text <sup>See footnote > 1</sup></p> <img src="image1.gif alt="My Image"/> <p>This is > some text in between the image and table.</p> <table> > ... > </table> > <p>Some more text to finish the paragraph off.</p> > > > The way that you'd want to write your XSL would be something like: > > <xsl:template match="para"> > <p> > <xsl:apply-templates /> > </p> > </xsl:template> > > <xsl:template match="image"> > </p> > <img> > <xsl:attribute... > ... > </img> > <p> > </xsl:template> > > but of course that is non-sensical. > > What is the easiest and/or most efficient way to do this in XSLT 2.0? > > Thanks > > Tristan > > ********************************************** > Tristan Stevens
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Un-nesting elements in XS, Michael Kay | Thread | [xsl] sort, output multiple 'pages', r d |
Re: [xsl] Un-nesting elements in XS, David Carlisle | Date | RE: [xsl] Un-nesting elements in XS, Michael Kay |
Month |