Skip to main content

Pythonic XML Data Binding Package

Project description

Most XML libraries fit into one of two categories; they either parse XML to store and organize these events (such as expat or SAX), or they parse the entire XML document into memory in one batch and return a handle to the document’s root element only after its finished (DOM and ElementTree).

While the latter is much easier to work with, it also requires that the entire XML stream be available before any of it can be processed and must load the entire stream into memory, even when only a piece of it needs to be evaluated at a time.

With NodeTree we seek a hybrid of these two techniques. Callbacks can be set for virtually every stage of processing, but what is returned is the (possibly incomplete) object being processed. Nodes which have been fully processed can be removed from the tree in processing to save memory and the user can even specify an alternative class to create child nodes of an element. The goal is a clean, Pythonic API usable for the most basic to the most advanced XML processing.

NodeTree is similar to the familiar ElementTree API with a few notable differences:

  • Element.tag has been renamed to Element.name

  • Element attributes are a dictionary at Element.attributes

  • Elements are sequences of their children

  • Text inside an element is a child node, not Element.text property, so the order of text and child elements is preserved and available. Text nodes are simply strings, so you can just Element.append(‘text’).

  • Nodes work by duck typing and can be freely mixed from other XML libraries including (with very little work) ElementTree or DOM

  • All nodes can be converted to XML strings with their __str__ method

Project details


Download files

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

Source Distribution

NodeTree-0.2.tar.bz2 (25.6 kB view details)

Uploaded Source

File details

Details for the file NodeTree-0.2.tar.bz2.

File metadata

  • Download URL: NodeTree-0.2.tar.bz2
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for NodeTree-0.2.tar.bz2
Algorithm Hash digest
SHA256 a443093e022ac2fcbb0c52e25057bfe1d4a79e5b894c485ef67e9f870755a14a
MD5 274320546506c1b6b40c0e2afccd450d
BLAKE2b-256 a405c9e8f93bb4519da55607e068c0ceeb62561a8e03b40bbc7d23d65321ed4a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page