|
Subject: Re: [xsl] Mixed content, separation From: davep@xxxxxxxxxxxxx Date: Wed, 29 Feb 2012 09:17:02 -0000 |
Seemed uncessarily complex, but that works.
I tripped up over
...
<ul>
Isolate
<i>inlined</i>
</ul>
After content, <b>....</b></p>
<Afterwards/>
which yours caught.
Thanks.
> Hi Dave,
>
> You could use grouping with adjacent
>
> <xsl:template match="p">
> <xsl:for-each-group select="node()"
> group-adjacent="if(self::ul | self::dl) then(generate-id())
> else('inline')">
> <xsl:choose>
> <xsl:when test="current-grouping-key() = 'inline'">
> <p>
> <xsl:apply-templates select="current-group()"/>
> </p>
> </xsl:when>
> <xsl:otherwise>
> <xsl:apply-templates select="current-group()"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:for-each-group>
> </xsl:template>
>
> <xsl:template match="node()">
> <xsl:copy>
> <xsl:copy-of select="@*"></xsl:copy-of>
> <xsl:apply-templates select="node()"></xsl:apply-templates>
> </xsl:copy>
> </xsl:template>
>
> since you don't know what the inlines are, I hope you know what the
> block elements are
> you can make the test for block better yourself I guess
>
>
>
> At 09:37 29/02/2012, you wrote:
>>given
>><p> text1 <i>italic</i>
>><ul>
>>...
>></ul>
>>text 2</p>
>>or
>><p> text1 <i>italic</i>
>><dl>
>>...
>></dl>
>>text 2</p>
>>
>>How can I produce
>>
>><p> text1 <i>italic</i></p>
>><ul>
>>...
>></ul>
>><p>text 2 (any other inlines)</p>
>>
>>I.e. isolate the block elements...
>>
>>nasty side:
>> I'm unsure of the list of inline elements!
>>
>>any suggestions appreciated.
>>
>>Dave
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Mixed content, separation, Andrew Welch | Thread | Re: [xsl] Mixed content, separation, David Carlisle |
| Re: [xsl] Mixed content, separation, Andrew Welch | Date | Re: [xsl] Mixed content, separation, David Carlisle |
| Month |