11
* New helper functions ``strip_attributes()``, ``strip_elements()``,
12
``strip_tags()`` in lxml.etree to remove attributes/subtrees/tags
18
* Namespace cleanup on subtree insertions could result in missing
19
namespace declarations (and potentially crashes) if the element
20
defining a namespace was deleted and the namespace was not used by
21
the top element of the inserted subtree but only in deeper subtrees.
23
* Raising an exception from a parser target callback didn't always
26
* Only {true, false, 1, 0} are accepted as the lexical representation for
27
BoolElement ({True, False, T, F, t, f} not any more), restoring lxml <= 2.0
40
* Injecting default attributes into a document during XML Schema
41
validation (also at parse time).
43
* Pass ``huge_tree`` parser option to disable parser security
44
restrictions imposed by libxml2 2.7.
49
* The script for statically building libxml2 and libxslt didn't work
52
* ``XMLSchema()`` also passes invalid schema documents on to libxml2
53
for parsing (which could lead to a crash before release 2.6.24).
65
* Support for ``standalone`` flag in XML declaration through
66
``tree.docinfo.standalone`` and by passing ``standalone=True/False``
72
* Crash when parsing an XML Schema with external imports from a
82
* Support strings and instantiable Element classes as child arguments
83
to the constructor of custom Element classes.
85
* GZip compression support for serialisation to files and file-like
91
* Deep-copying an ElementTree copied neither its sibling PIs and
92
comments nor its internal/external DTD subsets.
94
* Soupparser failed on broken attributes without values.
96
* Crash in XSLT when overwriting an already defined attribute using
99
* Crash bug in exception handling code under Python 3. This was due
100
to a problem in Cython, not lxml itself.
102
* ``lxml.html.FormElement._name()`` failed for non top-level forms.
104
* ``TAG`` special attribute in constructor of custom Element classes
105
was evaluated incorrectly.
110
* Official support for Python 3.0.1.
112
* ``Element.findtext()`` now returns an empty string instead of None
113
for Elements without text content.
116
2.2beta3 (2009-02-17)
117
=====================
122
* ``XSLT.strparam()`` class method to wrap quoted string parameters
123
that require escaping.
128
* Memory leak in XPath evaluators.
130
* Crash when parsing indented XML in one thread and merging it with
131
other documents parsed in another thread.
133
* Setting the ``base`` attribute in ``lxml.objectify`` from a unicode
136
* Fixes following changes in Python 3.0.1.
138
* Minor fixes for Python 3.
143
* The global error log (which is copied into the exception log) is now
144
local to a thread, which fixes some race conditions.
146
* More robust error handling on serialisation.
149
2.2beta2 (2009-01-25)
150
=====================
155
* Potential memory leak on exception handling. This was due to a
156
problem in Cython, not lxml itself.
158
* ``iter_links`` (and related link-rewriting functions) in
159
``lxml.html`` would interpret CSS like ``url("link")`` incorrectly
160
(treating the quotation marks as part of the link).
162
* Failing import on systems that have an ``io`` module.
23
205
* Crash when using an XPath evaluator in multiple threads.
214
* Crash when using an XPath evaluator in multiple threads.
217
2.2alpha1 (2008-11-23)
218
======================
223
* Support for XSLT result tree fragments in XPath/XSLT extension
226
* QName objects have new properties ``namespace`` and ``localname``.
228
* New options for exclusive C14N and C14N without comments.
230
* Instantiating a custom Element classes creates a new Element.
235
* XSLT didn't inherit the parse options of the input document.
237
* 0-bytes could slip through the API when used inside of Unicode
240
* With ``lxml.html.clean.autolink``, links with balanced parenthesis,
241
that end in a parenthesis, will be linked in their entirety (typical
242
with Wikipedia links).
26
248
2.1.3 (2008-11-17)
27
249
==================