Здравствуйте. Прошу прощения за беспокойство. Обращаюсь к вам по причине собственной ограниченности.
Дело вот в чем: Надо было распарсить xml с кодировкой cp1251 через SAX и записать результат в файл.
код xml для примера:
<?xml version=“1.0” encoding=“windows-1251” ?>
- <main>
- <Данные>
<ДатаНачала>22.03.2011</ДатаНачала>
</Данные>
</main>
код модуля:
import StringIO
from xml.sax.handler import ContentHandler
import xml.sax
class textHandler(ContentHandler):
def characters(self, ch):
output = StringIO.StringIO()
output.write(ch.encode(“cp1251”))
print ch
parser = xml.sax.make_parser()
handler = textHandler()
parser.setContentHandler(handler)
parser.parse(“new2.xml”)
try:
f = open('rez.txt','w')
f.write(handler)
finally:
f.close()
if __name__ == ‘__main__’:
pass
в результате получаем строку:
22.03.2011
и заново созданный, но пустой файл rez2.txt
что не правильно в коде?
что сделать что бы он записывал весь поток в файл?