obscure problem using elementtree to make xhtml website

David Smith dns4 at cornell.edu
Thu Sep 3 16:28:50 CEST 2009


Lee wrote:
> Elementtree (python xml parser) will transform markup like
> 
> <tag boo="baa"></tag>
> 
> into
> 
> <tag boo="baa" />
> 
> which is a reasonable thing to do for xml (called minimization, I
> think).
> 
> But this caused an obscure problem when I used it to create the xhtml
> parts of my website,
> causing Internet Explorer to display nearly blank pages. I explain the
> details at
> 
> http://lee-phillips.org/scripttag/
> 
> and am writing here as a heads-up to anyone who might be using a
> workflow similar to mine: writing documents in xml and using python
> and elementtree to transform those into xhtml webpages, and using the
> standard kludge of serving them as text/html to IE, to get around the
> latter's inability to handle xml. I can't be the only one (and I doubt
> this problem is confined to elementtree).
> 
> 
> Lee Phillips

It's not just Elementtree that does this .. I've seen others libraries
(admittedly in other languages I won't mention here) transform empty
tags to the self-terminating form.  A whitespace text node or comment
node in between *should* prevent that from happening.  AFAIK, the only
tag in IE xhtml that really doesn't like to be reduced like that is the
<script > tag.  Firefox seems to be fine w/ self-terminating <script />
tags.  At any rate, I tend to put a comment node in between the begin
and end to prevent the reduction:

<script src=" ... " type="text/javascript"><!-- --></script>

--David



More information about the Python-list mailing list