xsl-list
[Top] [All Lists]

RE: need help with xhtml output

2003-06-04 01:28:45
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



<Prev in Thread] Current Thread [Next in Thread>