| 1577 | pass # unknown |
| 1578 | |
| 1579 | def _setevents(self, events_queue, events_to_report): |
| 1580 | # Internal API for XMLPullParser |
| 1581 | # events_to_report: a list of events to report during parsing (same as |
| 1582 | # the *events* of XMLPullParser's constructor. |
| 1583 | # events_queue: a list of actual parsing events that will be populated |
| 1584 | # by the underlying parser. |
| 1585 | # |
| 1586 | parser = self._parser |
| 1587 | append = events_queue.append |
| 1588 | for event_name in events_to_report: |
| 1589 | if event_name == "start": |
| 1590 | parser.ordered_attributes = 1 |
| 1591 | def handler(tag, attrib_in, event=event_name, append=append, |
| 1592 | start=self._start): |
| 1593 | append((event, start(tag, attrib_in))) |
| 1594 | parser.StartElementHandler = handler |
| 1595 | elif event_name == "end": |
| 1596 | def handler(tag, event=event_name, append=append, |
| 1597 | end=self._end): |
| 1598 | append((event, end(tag))) |
| 1599 | parser.EndElementHandler = handler |
| 1600 | elif event_name == "start-ns": |
| 1601 | # TreeBuilder does not implement .start_ns() |
| 1602 | if hasattr(self.target, "start_ns"): |
| 1603 | def handler(prefix, uri, event=event_name, append=append, |
| 1604 | start_ns=self._start_ns): |
| 1605 | append((event, start_ns(prefix, uri))) |
| 1606 | else: |
| 1607 | def handler(prefix, uri, event=event_name, append=append): |
| 1608 | append((event, (prefix or '', uri or ''))) |
| 1609 | parser.StartNamespaceDeclHandler = handler |
| 1610 | elif event_name == "end-ns": |
| 1611 | # TreeBuilder does not implement .end_ns() |
| 1612 | if hasattr(self.target, "end_ns"): |
| 1613 | def handler(prefix, event=event_name, append=append, |
| 1614 | end_ns=self._end_ns): |
| 1615 | append((event, end_ns(prefix))) |
| 1616 | else: |
| 1617 | def handler(prefix, event=event_name, append=append): |
| 1618 | append((event, None)) |
| 1619 | parser.EndNamespaceDeclHandler = handler |
| 1620 | elif event_name == 'comment': |
| 1621 | def handler(text, event=event_name, append=append, self=self): |
| 1622 | append((event, self.target.comment(text))) |
| 1623 | parser.CommentHandler = handler |
| 1624 | elif event_name == 'pi': |
| 1625 | def handler(pi_target, data, event=event_name, append=append, |
| 1626 | self=self): |
| 1627 | append((event, self.target.pi(pi_target, data))) |
| 1628 | parser.ProcessingInstructionHandler = handler |
| 1629 | else: |
| 1630 | raise ValueError("unknown event %r" % event_name) |
| 1631 | |
| 1632 | def _raiseerror(self, value): |
| 1633 | err = ParseError(value) |