Subject: Re: [xsl] Grouping: XHTML inline, block and flow From: "Raka Gator" <plogbil@xxxxxxxxx> Date: Thu, 27 Mar 2008 16:21:49 +0100 |
Hi! On Thu, Mar 27, 2008 at 4:13 PM, Bjorndahl, Brad <brad.bjorndahl@xxxxxxxxxxxxxxxx> wrote: > I can only respond to question 1. I have done something similar with DITA, which also allows a mix of inline and block type elements. > > First, though, I would not try to solve this problem in full generality without XSLT 2.0. I'm just not brave enough. Yeah, I've realized that I should go with 2.0. I'm going to give it a try. > Assuming you have resolved your problems with 2.0, this is how I handle the mix: > > 1) Specify your inline elements in a global variable like this: > <xsl:variable name="inlineElts"> > <inline></inline> <!-- for text nodes --> > <inline>b</inline> > <inline>i</inline> > <inline>sup</inline> > <inline>sub</inline> > . > . > . > </xsl:variable> > > > 2) In templates that process mixed content, include, at the appropriate point: > <xsl:call-template name="processMixedContent" > > . > </xsl:call-template> > > In my case I also have > <xsl:call-template name="processNodes-note" > > <xsl:call-template name="processNodes-li_choice_dt" > > and so on for special cases, but they all work in a similar way. > > > 3) Add the processMixedContent template: > <xsl:template name="processMixedContent"> . . . > > in which you have a statement that groups inline and block elements like this (and this is where 2.0 is important): > > <xsl:for-each-group select="child::node()" group-adjacent="exists(index-of($inlineElts/inline,local-name()))"> > <xsl:for-each select="."> > <xsl:choose> > <xsl:when test="current-grouping-key() eq true()"> <!-- Process inline elements --> > <xsl:for-each select="current-group()" > > . > . > . > <xsl:otherwise> <!-- Process block elements --> > > <xsl:apply-templates select="current-group()"> Great tip! I didn't even know that you could do that with variables. I'll read up on 2.0 grouping and try to solve the other issues and give it a try! Thank you very much! /Stefan
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Grouping: XHTML inline, b, Bjorndahl, Brad | Thread | [xsl] Modification to The CSV to XM, Marney Cotterill |
Re: [xsl] for-each issue, David Carlisle | Date | Re: [xsl] for-each issue, Z W |
Month |