[Lxml-checkins] r41955 - in lxml/trunk: . src/lxml
scoder at codespeak.net
scoder at codespeak.net
Sat Apr 7 22:17:30 CEST 2007
Author: scoder
Date: Sat Apr 7 22:17:29 2007
New Revision: 41955
Modified:
lxml/trunk/CHANGES.txt
lxml/trunk/src/lxml/sax.py
Log:
support for custom Element class instantiation in lxml.sax
Modified: lxml/trunk/CHANGES.txt
==============================================================================
--- lxml/trunk/CHANGES.txt (original)
+++ lxml/trunk/CHANGES.txt Sat Apr 7 22:17:29 2007
@@ -8,6 +8,8 @@
Features added
--------------
+* Support for custom Element class instantiation in lxml.sax
+
* '.' represents empty ObjectPath (identity)
* EXSLT RegExp support in standard XPath (not only XSLT)
Modified: lxml/trunk/src/lxml/sax.py
==============================================================================
--- lxml/trunk/src/lxml/sax.py (original)
+++ lxml/trunk/src/lxml/sax.py Sat Apr 7 22:17:29 2007
@@ -13,12 +13,15 @@
class ElementTreeContentHandler(object, ContentHandler):
"""Build an lxml ElementTree from SAX events.
"""
- def __init__(self):
+ def __init__(self, makeelement=None):
self._root = None
self._element_stack = []
self._default_ns = None
self._ns_mapping = { None : [None] }
self._new_mappings = {}
+ if makeelement is None:
+ makeelement = Element
+ self._makeelement = makeelement
def _get_etree(self):
"Contains the generated ElementTree after parsing is finished."
@@ -77,7 +80,8 @@
element_stack = self._element_stack
if self._root is None:
- element = self._root = Element(el_name, attrs, self._new_mappings)
+ element = self._root = \
+ self._makeelement(el_name, attrs, self._new_mappings)
else:
element = SubElement(element_stack[-1], el_name,
attrs, self._new_mappings)
More information about the lxml-checkins
mailing list