Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
133 lines (91 sloc) 4.2 KB
lxml is a Pythonic binding for the libxml2_ and libxslt_ libraries. See the
introduction_ for more information about background and goals. Some common
questions are answered in the FAQ_.
.. _libxml2:
.. _libxslt:
.. _introduction: intro.html
.. _FAQ: FAQ.html
The best way to download binary versions is to visit `lxml at the Python
cheeseshop`_. It has the source, eggs and installers for various platforms.
.. _`lxml at the Python cheeseshop`:
Please take a look at the `installation instructions`_!
.. _`installation instructions`: installation.html
* `lxml 1.0`_, released 2006-06-01 (`changes for 1.0`_)
* `lxml 0.9.2`_, released 2006-05-10 (`changes for 0.9.2`_)
* `lxml 0.9.1`_, released 2006-03-30 (`changes for 0.9.1`_)
* `lxml 0.9`_, released 2006-03-20 (`changes for 0.9`_)
* `lxml 0.8`_, released 2005-11-03 (`changes for 0.8`_)
* `lxml 0.7`_, released 2005-06-15 (`changes for 0.7`_)
* `lxml 0.6`_, released 2005-05-14 (`changes for 0.6`_)
* `lxml 0.5.1`_, released 2005-04-09 (`changes for 0.5.1`_)
* `lxml 0.5`_, released 2005-04-08
.. _`lxml 1.0`: lxml-1.0.tgz
.. _`lxml 0.9.2`: lxml-0.9.2.tgz
.. _`lxml 0.9.1`: lxml-0.9.1.tgz
.. _`lxml 0.9`: lxml-0.9.tgz
.. _`lxml 0.8`: lxml-0.8.tgz
.. _`lxml 0.7`: lxml-0.7.tgz
.. _`lxml 0.6`: lxml-0.6.tgz
.. _`lxml 0.5.1`: lxml-0.5.1.tgz
.. _`lxml 0.5`: lxml-0.5.tgz
.. _`CHANGES for 1.0`: changes-1.0.html
.. _`CHANGES for 0.9.2`: changes-0.9.2.html
.. _`CHANGES for 0.9.1`: changes-0.9.1.html
.. _`CHANGES for 0.9`: changes-0.9.html
.. _`CHANGES for 0.8`: changes-0.8.html
.. _`CHANGES for 0.7`: changes-0.7.html
.. _`CHANGES for 0.6`: changes-0.6.html
.. _`CHANGES for 0.5.1`: changes-0.5.1.html
It's also possible to check out the latest development version of lxml
from svn directly, using a command like this::
svn co lxml
You can also `browse it through the web`_. Please read `how to build lxml
from source`_ first. The `latest CHANGES`_ of the developer version are also
accessible. You can check there if a bug you found has been fixed or a
feature you want has been implemented in the latest trunk version.
.. _`how to build lxml from source`: build.html
.. _`browse it through the web`:
.. _`latest CHANGES`:
lxml follows the ElementTree_ API as much as possible, building it on top of
the native libxml2 tree. See also the `ElementTree compatibility overview`_
and the `benchmark results`_ comparing lxml to the original ElementTree_ and
cElementTree_ implementations.
lxml also `extends this API`_ to expose libxml2 and libxslt specific
functionality, such as XPath_, `Relax NG`_, `XML Schema`_, `XSLT`_, and
`c14n`_. Python code can be called from XPath expressions and XSLT stylesheets
through the use of `extension functions`_.
In addition to the ElementTree API, lxml also features an API for
`implementing namespaces`_ using tag specific element classes. This is a
simple way to write arbitrary XML driven APIs on top of lxml.
lxml also offers a `SAX compliant API`_, that works with the SAX support
in the standard library.
.. _ElementTree:
.. _cElementTree:
.. _`benchmark results`: performance.html
.. _`ElementTree compatibility overview`: compatibility.html
.. _`extends this API`: api.html
.. _`extension functions`: extensions.html
.. _`implementing namespaces`: namespace_extensions.html
.. _`SAX compliant API`: sax.html
.. _XPath:
.. _`Relax NG`:
.. _`XML Schema`:
.. _`XSLT`:
.. _`c14n`:
Mailing list
Questions? Suggestions? Code to contribute? We have a `mailing list`_.
.. _`mailing list`:
The lxml library is shipped under a BSD license. libxml2 and libxslt2
itself are shipped under the MIT license. There should therefore be no
obstacle to using lxml in your codebase.
Something went wrong with that request. Please try again.