RE: [xsl] FW: Dealing with mixed content

Subject: RE: [xsl] FW: Dealing with mixed content
From: "Paul Clarke" <pclarke@xxxxxxxxxxxxxxxx>
Date: Wed, 16 Feb 2005 12:59:39 -0000
Hello Joris,

Thank you for your prompt reply. The solution works well.

Being new to XSLT I'm a little unsure of exactly what the pattern in the
'use' attribute value in the xsl:key element is doing.

Could you please explain  it in a little more detail.



-----Original Message-----
From: Joris Gillis [mailto:roac@xxxxxxxxxx] 
Sent: 15 February 2005 18:48
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] FW: Dealing with mixed content

Tempore 19:31:36, die 02/15/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx
scripsit Paul Clarke

> Hello,
> Apologies inadvance for the 'XSL 101' nature of this question but I'm 
> new to XSL.
> I receive XML from an automate conversion process, over which I have 
> no control.
> Example:
> 	<block >Text <font font-weight="bold">more text</font> more 
> text<sr/>more text. <hr/>more text <sr/>more text.</block>
> The <sr/> elements can be ignored but the <hr/> element indicates that 
> an exisitng <P> element should be terminated and a new <P> element
> From the above sample the output would be:
> 	<P>Text <f>more text</f> more text more text. </P>
> 	<P>more text more text</P>

This is a grouping problem. Numerous techniques are available for solving
problems like this.

Here you have one:

<xsl:stylesheet xmlns:xsl="";  
<xsl:output method="xml" indent="yes"/>

<xsl:key name="group" match="node()" use="generate-id((.. |

<xsl:template match="block">
		<xsl:for-each select="hr|.">

<xsl:template match="sr | hr"/>

<xsl:template match="font">


Joris Gillis (
Spread the wiki (

Current Thread