RE: [xsl] Problem with Output special char in HTML attribute

Subject: RE: [xsl] Problem with Output special char in HTML attribute
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 7 Dec 2004 18:25:39 -0000
The recommended way of doing this in XSLT 2.0 is to allocate two private use
characters to the symbols "<?" and "?>", and then use a character map to
generate these during the serialization phase.

<xsl:character-map name="cmap">
  <xsl:output-character character="&#xE501;" string="&lt;?"/> 
  <xsl:output-character character="&#xE502;" string="?&gt;"/>
</xsl:character-map>

 <a href="#" tabindex="&#xE501;=$tabindex++&#xE502;">

Michael Kay

> -----Original Message-----
> From: David Carlisle [mailto:davidc@xxxxxxxxx] 
> Sent: 07 December 2004 17:38
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Problem with Output special char in HTML attribute
> 
> 
> This is a FAQ (and I'm sure the answer will be in the FAQ for 
> this list)
> 
> 
> <a href="#" tabindex="<?=$tabindex++?>">
> 
> is not well formed XML (or HTML) so you  can not generate it 
> directly in
> XSLT.
> 
> If your processor supports disable output  escaping and it 
> wasn't in an
> attribute value you could go
> 
> <xsl:text disable-output-escaping="yes">&lt;?=$tabindex++?&gt;
> 
> but as you are in an attribute value there is no way to 
> generate this in
> pure xslt 1.
> 
> Saxon (and possibly other systems) has an extension attribute to allow
> d-o-e to be used with attribute values, or you could use 
> XSLT2  (If you
> have saxon 8)
> 
> David
> 
> ______________________________________________________________
> __________
> This e-mail has been scanned for all viruses by Star. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ______________________________________________________________
> __________

Current Thread