Package lxml :: Module etree :: Class iterparse

[hide private]
[frames] | no frames]

# Class iterparse

     object --+
              |
    _BaseParser --+
                  |
                 iterparse

iterparse(self, source, events=("end",), tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis=False, encoding=None, html=False, huge_tree=False, schema=None)

Incremental parser.

Parses XML into a tree and generates tuples (event, element) in a SAX-like fashion. `event` is any of 'start', 'end', 'start-ns', 'end-ns'.

For 'start' and 'end', `element` is the Element that the parser just found opening or closing. For 'start-ns', it is a tuple (prefix, URI) of a new namespace declaration. For 'end-ns', it is simply None. Note that all start and end events are guaranteed to be properly nested.

The keyword argument `events` specifies a sequence of event type names that should be generated. By default, only 'end' events will be generated.

The additional `tag` argument restricts the 'start' and 'end' events to those elements that match the given tag. By default, events are generated for all elements. Note that the 'start-ns' and 'end-ns' events are not impacted by this restriction.

The other keyword arguments in the constructor are mainly based on the libxml2 parser configuration. A DTD will also be loaded if validation or attribute default values are requested.

Available boolean keyword arguments:

  - attribute_defaults: read default attributes from DTD

  - dtd_validation: validate (if DTD is available)

  - load_dtd: use DTD for parsing

  - no_network: prevent network access for related files

  - remove_blank_text: discard blank text nodes

  - remove_comments: discard comments

  - remove_pis: discard processing instructions

  - strip_cdata: replace CDATA sections by normal text content (default: True)

  - compact: safe memory for short text content (default: True)

  - resolve_entities: replace entities by their text value (default: True)

  - huge_tree: disable security restrictions and support very deep trees

      and very long text content (only affects libxml2 2.7+)

Other keyword arguments:
  - encoding: override the document encoding
  - schema: an XMLSchema to validate against

Instance Methods | [hide private]

__init__(self, source, events=("end", ), tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis=False, encoding=None, html=False, huge_tree=False, schema=None) x.__init__(...) initializes x; see x.__class__.__doc__ for signature |

__iter__(...) |

a new object with type S, a subtype of T

__new__(T, S, ...) |

__next__(...) |

copy(self) Create a new parser with the same configuration. |

the next value, or raise StopIteration

next(x) |

Inherited from `_BaseParser`: `makeelement`, `setElementClassLookup`, `set_element_class_lookup` Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__str__`

Properties | [hide private]

| error_log The error log of the last (or current) parser run.
| root
Inherited from `_BaseParser`: `resolvers`, `version` Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, source, events=("end", ), tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis=False, encoding=None, html=False, huge_tree=False, schema=None)
(Constructor)

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__

### __new__(T, S, ...)

Returns: a new object with type S, a subtype of T
Overrides: object.__new__

### copy(self)

Create a new parser with the same configuration.

Overrides: _BaseParser.copy
  (inherited documentation)