Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.

Project description

lxml is a Pythonic 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.

1.0.beta (2006-05-18)

Features added

  • Formatted output via pretty_print keyword to serialization functions
  • XSLT can block access to file system and network via XSLTAccessControl
  • ElementTree.write() no longer serializes in memory (reduced memory footprint)
  • Speedup of Element.findall(tag) and Element.getiterator(tag)
  • Support for writing the XML representation of Elements and ElementTrees to Python unicode strings via etree.tounicode()
  • Support for writing XSLT results to Python unicode strings via unicode()
  • Parsing a unicode string no longer copies the string (reduced memory footprint)
  • Parsing file-like objects now reads chunks rather than the whole file (reduced memory footprint)
  • Parsing StringIO objects from the start avoids copying the string (reduced memory footprint)
  • Read-only ‘docinfo’ attribute in ElementTree class holds DOCTYPE information, original encoding and XML version as seen by the parser
  • etree module can be compiled without libxslt by commenting out the line include "xslt.pxi" near the end of the etree.pyx source file
  • Better error messages in parser exceptions
  • Error reporting now also works in XSLT
  • Support for custom document loaders (URI resolvers) in parsers and XSLT, resolvers are registered at parser level
  • Implementation of exslt:regexp for XSLT based on the Python ‘re’ module, enabled by default, can be switched off with ‘regexp=False’ keyword argument
  • Support for exslt extensions (libexslt) and libxslt extra functions (node-set, document, write, output)
  • Substantial speedup in XPath.evaluate()
  • HTMLParser for parsing (broken) HTML
  • XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id implementation of libxml2 (as opposed to ET compatible XMLID)

Bugs fixed

  • Some ElementTree methods could crash if the root node was not initialized (neither file nor element passed to the constructor)
  • Element/SubElement failed to set attribute namespaces from passed attrib dictionary
  • tostring() now adds an XML declaration for non-ASCII encodings
  • tostring() failed to serialize encodings that contain 0-bytes
  • ElementTree.xpath() and XPathDocumentEvaluator were not using the ElementTree root node as reference point
  • Calling document('') in XSLT failed to return the stylesheet

Project details


Release history Release notifications

History Node

4.2.2

History Node

4.2.1

History Node

4.2.0

History Node

4.1.1

History Node

4.1.0

History Node

4.0.0

History Node

3.8.0

History Node

3.7.3

History Node

3.7.2

History Node

3.7.1

History Node

3.7.0

History Node

3.6.4

History Node

3.6.3

History Node

3.6.2

History Node

3.6.1

History Node

3.6.0

History Node

3.5.0

History Node

3.5.0b1

History Node

3.4.4

History Node

3.4.3

History Node

3.4.2

History Node

3.4.1

History Node

3.4.0

History Node

3.3.6

History Node

3.3.5

History Node

3.3.4

History Node

3.3.3

History Node

3.3.2

History Node

3.3.1

History Node

3.3.0

History Node

3.3.0beta5

History Node

3.3.0beta4

History Node

3.3.0beta3

History Node

3.3.0beta2

History Node

3.3.0beta1

History Node

3.2.5

History Node

3.2.4

History Node

3.2.3

History Node

3.2.2

History Node

3.2.1

History Node

3.2.0

History Node

3.1.2

History Node

3.1.1

History Node

3.1.0

History Node

3.1beta1

History Node

3.0.2

History Node

3.0.1

History Node

3.0

History Node

2.3.6

History Node

2.3.5

History Node

2.3.4

History Node

2.3.3

History Node

2.3.2

History Node

2.3.1

History Node

2.3

History Node

2.3beta1

History Node

2.3alpha2

History Node

2.3alpha1

History Node

2.2.8

History Node

2.2.7

History Node

2.2.6

History Node

2.2.5

History Node

2.2.4

History Node

2.2.3

History Node

2.2.2

History Node

2.2.1

History Node

2.2

History Node

2.2beta4

History Node

2.2beta3

History Node

2.2beta2

History Node

2.2beta1

History Node

2.2alpha1

History Node

2.1.5

History Node

2.1.4

History Node

2.1.3

History Node

2.1.2

History Node

2.1.1

History Node

2.1

History Node

2.1beta3

History Node

2.1beta2

History Node

2.1beta1

History Node

2.1alpha1

History Node

2.0.11

History Node

2.0.10

History Node

2.0.9

History Node

2.0.8

History Node

2.0.7

History Node

2.0.6

History Node

2.0.5

History Node

2.0.4

History Node

2.0.3

History Node

2.0.2

History Node

2.0.1

History Node

2.0

History Node

2.0beta2

History Node

2.0beta1

History Node

2.0alpha6

History Node

2.0alpha5

History Node

2.0alpha4

History Node

2.0alpha3

History Node

2.0alpha2

History Node

2.0alpha1

History Node

1.3.6

History Node

1.3.5

History Node

1.3.4

History Node

1.3.3

History Node

1.3.2

History Node

1.3.1

History Node

1.3

History Node

1.3beta

History Node

1.2.1

History Node

1.2

History Node

1.1.2

History Node

1.1.1

History Node

1.1

History Node

1.1beta

History Node

1.1alpha

History Node

1.0.4

History Node

1.0.3

History Node

1.0.2

History Node

1.0.1

History Node

1.0

This version
History Node

1.0.beta

History Node

0.9.2

History Node

0.9.1

History Node

0.9

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
lxml-1.0.beta-py2.4-linux-i686.egg (172.4 kB) Copy SHA256 hash SHA256 Egg 2.4 May 18, 2006
lxml-1.0.beta-py2.4-linux-x86_64.egg (200.7 kB) Copy SHA256 hash SHA256 Egg 2.4 May 18, 2006
lxml-1.0.beta-py2.4-win32.egg (156.3 kB) Copy SHA256 hash SHA256 Egg 2.4 May 18, 2006
lxml-1.0.beta.tar.gz (354.2 kB) Copy SHA256 hash SHA256 Source None May 18, 2006
lxml-1.0.beta.win32-py2.4.exe (216.1 kB) Copy SHA256 hash SHA256 Windows Installer 2.4 May 18, 2006

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page