RE: [xsl] need help with xhtml output

Subject: RE: [xsl] need help with xhtml output
From: Jarno.Elovirta@xxxxxxxxx
Date: Wed, 4 Jun 2003 11:28:45 +0300
Hi,

> 1. Outputting character entities.
> 
> There doesn't seem to be an easy way to output "©" (in 
> attributes)
> and other numeric entities. © is unchanged, © 
> becomes the
> (c) character itself. For instance, I want to output exactly 
> this sequence
> of characters:
> 
> <meta name="copyright" content="&#169; 2003"/>

Why? It will make no difference to the program reading your document whether it's a character or a character reference. Anyhow, you could set the xsl:output to use encoding "ASCII" (provided your XSLT engine recognizes that encoding) to force non-ASCII characters to be output as character entities.

> 2. Forcing a close tag for elements
> 
> Mozilla, Opera and IE choke on <script/>.

If you serve you XHTML documents as application/xhtml+xml, Mozilla's probably happy with <script/>.

> Textarea is another one.
> The trick to do "<script><xsl:text>
> </xsl:text></script>" seems like such a hack. Is there a better way?

Not a better one, but you can also use e.g.

  <script type="text/javascript" src="foo.js">//</script>

or

  <script type="text/javascript" src="foo.js">
    <xsl:comment />
  </script>

> 3. html namespace attribute.
> 
> Consider this:
> 
> <html xmlns="http://www.w3.org/1999/xhtml";>
>    <head>
>       <xsl:call-template name="headers"/>
>    </head>
> </html>
> 
> All the elements that the template headers inserts get an extraneous
> xmlns="" attribute. What is the best way to deal with that?

Well, different XSLT engines might handle it differently, but you could try declare the XHTML namespace in the xsl:stylesheet instead of the Literal Result Elements, and then not copy/generate the namespace nodes.

Cheers,

Jarno - Skinny Puppy: Nature's Revenge

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread