1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#!/usr/bin/env python
"""
This will show russian text in koi8-r encoding.
"""
from xml.parsers import expat
import string
# Produces ImportError in 1.5, since this test can't possibly pass there
import codecs
class XMLTree:
def __init__(self):
pass
# Define a handler for start element events
def StartElement(self, name, attrs ):
#name = name.encode()
print "<", repr(name), ">"
print "attr name:", attrs.get("name",unicode("")).encode("koi8-r")
print "attr value:", attrs.get("value",unicode("")).encode("koi8-r")
def EndElement(self, name ):
print "</", repr(name), ">"
def CharacterData(self, data ):
if string.strip(data):
data = data.encode("koi8-r")
print data
def LoadTree(self, filename):
# Create a parser
Parser = expat.ParserCreate()
# Tell the parser what the start element handler is
Parser.StartElementHandler = self.StartElement
Parser.EndElementHandler = self.EndElement
Parser.CharacterDataHandler = self.CharacterData
# Parse the XML File
ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
def runTest():
win = XMLTree()
win.LoadTree("enc_test.xml")
return win
runTest()
|