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
- Plain ASCII XPath string results are no longer forced into unicode objects as in 2.0beta1, but are returned as plain strings as before.
- All XPath string results are ‘smart’ objects that have a getparent() method to retrieve their parent Element.
- with_tail option in serialiser functions.
- More accurate exception messages in validator creation.
- Missing import in lxml.html.clean.
- Some Python 2.4-isms prevented lxml from building/running under Python 2.3.
- Exceptions carry only the part of the error log that is related to the operation that caused the error.
- XMLSchema() and RelaxNG() now enforce passing the source file/filename through the file keyword argument.
- The test suite now skips most doctests under Python 2.3.
- make clean no longer removes the .c files (use make realclean instead)