Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It provides safe and convenient access to these libraries using the ElementTree API.
It extends the ElementTree API significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, C14N and much more.
To contact the project, go to the project home page or see our bug tracker at https://launchpad.net/lxml
In case you want to use the current in-development version of lxml, you can get it from the subversion repository at http://codespeak.net/svn/lxml/trunk . Running easy_install lxml==dev will install it from http://codespeak.net/svn/lxml/trunk#egg=lxml-dev
- Parse-time XML schema validation (schema parser keyword).
- XPath string results of the text() function and attribute selection make their Element container accessible through a getparent() method. As a side-effect, they are now always unicode objects (even ASCII strings).
- XSLT objects are usable in any thread - at the cost of a deep copy if they were not created in that thread.
- Invalid entity names and character references will be rejected by the Entity() factory.
- entity.text returns the textual representation of the entity, e.g. &.
- XPath on ElementTrees could crash when selecting the virtual root node of the ElementTree.
- Compilation --without-threading was buggy in alpha5/6.
- Minor performance tweaks for Element instantiation and subelement creation