Note: Doesn't work with Python 2.6 nor cElementTree. Tested with Python 2.7
$ python etree_overload.py
<main><sub1>Sub 1 Content</sub1><sub2>Sao Cacamba</sub2></main>
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
import xml.etree.ElementTree as et | |
class OverloadedElement(et.Element): | |
def __setattr__(self, name, value): | |
if name == "text": | |
value = value.replace(u'ú', 'u') | |
value = value.replace(u'ô', 'o') | |
value = value.replace(u'ã', 'a') | |
value = value.replace(u'ç', 'c') | |
super(et.Element, self).__setattr__(name, value) | |
main = OverloadedElement('main') | |
sub1 = et.SubElement(main, 'sub1') | |
sub1.text = u"Súb 1 Côntent" | |
sub2 = et.SubElement(main, 'sub2') | |
sub2.text = u"São Caçamba" | |
et.dump(main) |