7 Feb
2009
7 Feb
'09
12:34 p.m.
s = cStringIO.StringIO("""<foo>"She's the MAN!"</foo>""") e = etree.parse(s,etree.XMLParser(resolve_entities=False))
Note that there's also etree.fromstring().
etree.tostring(e) '<foo>"She\'s the MAN!"</foo>'
I would have expected resolve_entities=False to have prevented the translation of, eg, " to ".
The "resolve_entities" option is meant for entities defined in a DTD of which you want to keep the reference instead of the resolved value. The entities you mention are part of the XML spec, not of a DTD.
is there another way to prevent this behavior (or, if nothing else, reverse it after the fact)?
Well, what you get is well-formed XML. May I ask why you need the entity references in the output? Stefan