Lines Matching refs:self

17     def __init__(self, documentFactory=None):
19 self.documentFactory = documentFactory
20 self.firstEvent = [None, None]
21 self.lastEvent = self.firstEvent
22 self.elementStack = []
23 self.push = self.elementStack.append
25 self.pop = self.elementStack.pop
29 self._ns_contexts = [{XML_NAMESPACE:'xml'}] # contains uri -> prefix dicts
30 self._current_context = self._ns_contexts[-1]
31 self.pending_events = []
33 def pop(self):
34 result = self.elementStack[-1]
35 del self.elementStack[-1]
38 def setDocumentLocator(self, locator):
39 self._locator = locator
41 def startPrefixMapping(self, prefix, uri):
42 if not hasattr(self, '_xmlns_attrs'):
43 self._xmlns_attrs = []
44 self._xmlns_attrs.append((prefix or 'xmlns', uri))
45 self._ns_contexts.append(self._current_context.copy())
46 self._current_context[uri] = prefix or None
48 def endPrefixMapping(self, prefix):
49 self._current_context = self._ns_contexts.pop()
51 def startElementNS(self, name, tagName , attrs):
54 xmlns_attrs = getattr(self, '_xmlns_attrs', None)
58 self._xmlns_attrs = []
65 prefix = self._current_context[uri]
70 if self.document:
71 node = self.document.createElementNS(uri, tagName)
73 node = self.buildDocument(uri, tagName)
77 if self.document:
78 node = self.document.createElement(localname)
80 node = self.buildDocument(None, localname)
89 attr = self.document.createAttributeNS(a_uri, qname)
92 prefix = self._current_context[a_uri]
97 attr = self.document.createAttributeNS(a_uri, qname)
100 attr = self.document.createAttribute(a_localname)
104 self.lastEvent[1] = [(START_ELEMENT, node), None]
105 self.lastEvent = self.lastEvent[1]
106 self.push(node)
108 def endElementNS(self, name, tagName):
109 self.lastEvent[1] = [(END_ELEMENT, self.pop()), None]
110 self.lastEvent = self.lastEvent[1]
112 def startElement(self, name, attrs):
113 if self.document:
114 node = self.document.createElement(name)
116 node = self.buildDocument(None, name)
119 attr = self.document.createAttribute(aname)
123 self.lastEvent[1] = [(START_ELEMENT, node), None]
124 self.lastEvent = self.lastEvent[1]
125 self.push(node)
127 def endElement(self, name):
128 self.lastEvent[1] = [(END_ELEMENT, self.pop()), None]
129 self.lastEvent = self.lastEvent[1]
131 def comment(self, s):
132 if self.document:
133 node = self.document.createComment(s)
134 self.lastEvent[1] = [(COMMENT, node), None]
135 self.lastEvent = self.lastEvent[1]
138 self.pending_events.append(event)
140 def processingInstruction(self, target, data):
141 if self.document:
142 node = self.document.createProcessingInstruction(target, data)
143 self.lastEvent[1] = [(PROCESSING_INSTRUCTION, node), None]
144 self.lastEvent = self.lastEvent[1]
147 self.pending_events.append(event)
149 def ignorableWhitespace(self, chars):
150 node = self.document.createTextNode(chars)
151 self.lastEvent[1] = [(IGNORABLE_WHITESPACE, node), None]
152 self.lastEvent = self.lastEvent[1]
154 def characters(self, chars):
155 node = self.document.createTextNode(chars)
156 self.lastEvent[1] = [(CHARACTERS, node), None]
157 self.lastEvent = self.lastEvent[1]
159 def startDocument(self):
160 if self.documentFactory is None:
162 self.documentFactory = xml.dom.minidom.Document.implementation
164 def buildDocument(self, uri, tagname):
167 node = self.documentFactory.createDocument(uri, tagname, None)
168 self.document = node
169 self.lastEvent[1] = [(START_DOCUMENT, node), None]
170 self.lastEvent = self.lastEvent[1]
171 self.push(node)
173 for e in self.pending_events:
176 n = self.document.createProcessingInstruction(target, data)
179 n = self.document.createComment(e[0][1])
183 self.lastEvent[1] = e
184 self.lastEvent = e
185 self.pending_events = None
188 def endDocument(self):
189 self.lastEvent[1] = [(END_DOCUMENT, self.document), None]
190 self.pop()
192 def clear(self):
194 self.document = None
197 def warning(self, exception):
199 def error(self, exception):
201 def fatalError(self, exception):
205 def __init__(self, stream, parser, bufsize):
206 self.stream = stream
207 self.parser = parser
208 self.bufsize = bufsize
209 if not hasattr(self.parser, 'feed'):
210 self.getEvent = self._slurp
211 self.reset()
213 def reset(self):
214 self.pulldom = PullDOM()
216 self.parser.setFeature(xml.sax.handler.feature_namespaces, 1)
217 self.parser.setContentHandler(self.pulldom)
219 def __next__(self):
220 rc = self.getEvent()
225 def __iter__(self):
226 return self
228 def expandNode(self, node):
229 event = self.getEvent()
241 event = self.getEvent()
243 def getEvent(self):
246 if not self.pulldom.firstEvent[1]:
247 self.pulldom.lastEvent = self.pulldom.firstEvent
248 while not self.pulldom.firstEvent[1]:
249 buf = self.stream.read(self.bufsize)
251 self.parser.close()
253 self.parser.feed(buf)
254 rc = self.pulldom.firstEvent[1][0]
255 self.pulldom.firstEvent[1] = self.pulldom.firstEvent[1][1]
258 def _slurp(self):
264 self.parser.parse(self.stream)
265 self.getEvent = self._emit
266 return self._emit()
268 def _emit(self):
272 rc = self.pulldom.firstEvent[1][0]
273 self.pulldom.firstEvent[1] = self.pulldom.firstEvent[1][1]
276 def clear(self):
278 self.pulldom.clear()
279 del self.pulldom
280 self.parser = None
281 self.stream = None
285 def startElementNS(self, name, tagName , attrs):
286 PullDOM.startElementNS(self, name, tagName, attrs)
287 curNode = self.elementStack[-1]
288 parentNode = self.elementStack[-2]
291 def startElement(self, name, attrs):
292 PullDOM.startElement(self, name, attrs)
293 curNode = self.elementStack[-1]
294 parentNode = self.elementStack[-2]
297 def processingInstruction(self, target, data):
298 PullDOM.processingInstruction(self, target, data)
299 node = self.lastEvent[0][1]
300 parentNode = self.elementStack[-1]
303 def ignorableWhitespace(self, chars):
304 PullDOM.ignorableWhitespace(self, chars)
305 node = self.lastEvent[0][1]
306 parentNode = self.elementStack[-1]
309 def characters(self, chars):
310 PullDOM.characters(self, chars)
311 node = self.lastEvent[0][1]
312 parentNode = self.elementStack[-1]