Arnaud Delobelle wrote:
"Tim Arnold" <[EMAIL PROTECTED]> writes:

hi, I've got lots of xhtml pages that need to be fed to MS HTML Workshop to create CHM files. That application really hates xhtml, so I need to convert self-ending tags (e.g. <br />) to plain html (e.g. <br>).

Seems simple enough, but I'm having some trouble with it. regexps trip up because I also have to take into account 'img', 'meta', 'link' tags, not just the simple 'br' and 'hr' tags. Well, maybe there's a simple way to do that with regexps, but my simpleminded <img[^(/>)]+/> doesn't work. I'm not enough of a regexp pro to figure out that lookahead stuff.

Hi, I'm not sure if this is very helpful but the following works on
the very simple example below.

import re
xhtml = '<p>hello <img src="/img.png"/> spam <br/> bye </p>'
xtag = re.compile(r'<([^>]*?)/>') xtag.sub(r'<\1>', xhtml)
'<p>hello <img src="/img.png"> spam <br> bye </p>'

You might try XIST (http://www.livinglogic.de/Python/xist):

Code looks like this:

from ll.xist import parsers
from ll.xist.ns import html

xhtml = '<p>hello <img src="/img.png"/> spam <br/> bye </p>'

doc = parsers.parsestring(xhtml)
print doc.bytes(xhtml=0)

This outputs:

<p>hello <img src="/img.png"> spam <br> bye </p>

(and a warning that the alt attribute is missing in the img ;))

Servus,
   Walter

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to