76 |
|
|
77 |
def __init__(self): |
def __init__(self): |
78 |
self.chars = '' |
self.chars = '' |
|
self.__parser = None |
|
79 |
self.__directory = "" |
self.__directory = "" |
80 |
self.__dispatchers = {} |
self.__dispatchers = {} |
81 |
|
|
90 |
self.__directory = os.path.dirname(filename) |
self.__directory = os.path.dirname(filename) |
91 |
self.__file = open(filename) |
self.__file = open(filename) |
92 |
|
|
93 |
if self.__parser is None: |
parser = make_parser() |
94 |
self.__parser = make_parser() |
parser.setContentHandler(self) |
95 |
self.__parser.setContentHandler(self) |
parser.setErrorHandler(ErrorHandler()) |
96 |
self.__parser.setErrorHandler(ErrorHandler()) |
parser.setFeature(xml.sax.handler.feature_namespaces, 1) |
97 |
self.__parser.setFeature(xml.sax.handler.feature_namespaces, 1) |
|
98 |
|
# |
99 |
# |
# Well, this isn't pretty, but it appears that if you |
100 |
# Well, this isn't pretty, but it appears that if you |
# use Python 2.2 without the site-package _xmlplus then |
101 |
# use Python 2.2 without the site-package _xmlplus then |
# the following will fail, and without them it will work. |
102 |
# the following will fail, and without them it will work. |
# However, if you do have the site-package and you don't |
103 |
# However, if you do have the site-package and you don't |
# call these functions, the reader raises an exception |
104 |
# call these functions, the reader raises an exception |
# |
105 |
# |
# The reason we set these to 0 in the first place is |
106 |
# The reason we set these to 0 in the first place is |
# because there is an unresolved issue with external |
107 |
# because there is an unresolved issue with external |
# entities causing an exception in the reader |
108 |
# entities causing an exception in the reader |
# |
109 |
# |
try: |
110 |
try: |
parser.setFeature(xml.sax.handler.feature_validation,0) |
111 |
self.__parser.setFeature(xml.sax.handler.feature_validation,0) |
parser.setFeature(xml.sax.handler.feature_external_ges,0) |
112 |
self.__parser.setFeature(xml.sax.handler.feature_external_ges,0) |
parser.setFeature(xml.sax.handler.feature_external_pes,0) |
113 |
self.__parser.setFeature(xml.sax.handler.feature_external_pes,0) |
except SAXNotRecognizedException: |
114 |
except SAXNotRecognizedException: |
pass |
|
pass |
|
115 |
|
|
116 |
self.__parser.parse(self.__file) |
parser.parse(self.__file) |
117 |
|
|
118 |
self.close() |
self.close() |
119 |
|
|