Package lxml :: Module etree :: Class XMLParser

[hide private]
[frames] | no frames]

# Class XMLParser

        object --+
                 |
    ??._BaseParser --+
                     |
           _FeedParser --+
                         |
                        XMLParser

Known Subclasses:
  - ETCompatXMLParser
  - , XMLPullParser
  - , html.XHTMLParser

XMLParser(self, encoding=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, ns_clean=False, recover=False, XMLSchema schema=None, remove_blank_text=False, resolve_entities=True, remove_comments=False, remove_pis=False, strip_cdata=True, collect_ids=True, target=None, compact=True)

The XML parser.

Parsers can be supplied as additional argument to various parse functions of the lxml API. A default parser is always available and can be replaced by a call to the global function 'set_default_parser'. New parsers can be created at any time without a major run-time overhead.

The keyword arguments in the constructor are mainly based on the libxml2 parser configuration. A DTD will also be loaded if DTD validation or attribute default values are requested (unless you additionally provide an XMLSchema from which the default attributes can be read).

Available boolean keyword arguments:

- attribute_defaults - inject default attributes from DTD or XMLSchema

- dtd_validation - validate against a DTD referenced by the document

- load_dtd - use DTD for parsing

- no_network - prevent network access for related files (default: True)

- ns_clean - clean up redundant namespace declarations

- recover - try hard to parse through broken XML

- remove_blank_text - discard blank text nodes that appear ignorable

- remove_comments - discard comments

- remove_pis - discard processing instructions

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

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

- collect_ids - create a hash table of XML IDs (default: True, always True with DTD validation)

- 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
- target - a parser target object that will receive the parse events
- schema - an XMLSchema to validate against

Note that you should avoid sharing parsers between threads. While this is not harmful, it is more efficient to use separate parsers. This does not apply to the default parser.

Instance Methods | [hide private]

__init__(self, encoding=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, ns_clean=False, recover=False, XMLSchema schema=None, remove_blank_text=False, resolve_entities=True, remove_comments=False, remove_pis=False, strip_cdata=True, collect_ids=True, target=None, compact=True) x.__init__(...) initializes x; see help(type(x)) for signature |

a new object with type S, a subtype of T

__new__(T, S, ...) |

Inherited from `_FeedParser`: `close`, `feed` Inherited from `unreachable._BaseParser`: `copy`, `makeelement`, `setElementClassLookup`, `set_element_class_lookup` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Properties | [hide private]

Inherited from `_FeedParser`: `feed_error_log` Inherited from `unreachable._BaseParser`: `error_log`, `resolvers`, `target`, `version` Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, encoding=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, ns_clean=False, recover=False, XMLSchema schema=None, remove_blank_text=False, resolve_entities=True, remove_comments=False, remove_pis=False, strip_cdata=True, collect_ids=True, target=None, compact=True)
(Constructor)

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__

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

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