Pythonic XML Data Binding Package
Project description
NodeTree provides a clean, modern API for working with XML in Python.
Version 0.3 adds support for XML document parsing:
>>> import nodetree
>>> d = nodetree.Document('<article><p>Pre <b>Bold</b> Post</p></article>')
>>> d
<?xml version="1.0"?>
<article>
<p>Pre <b>Bold</b> Post</p>
</article>
>>> str(d.root)
'<?xml version="1.0"?>\n<article><p>Pre <b>Bold</b> Post</p></article>\n'
>>> d.root[0]
<p>Pre <b>Bold</b> Post</p>
>>> d.root[0].pop()
' Post'
>>> d.root[0][0] = 'Plain Text vs '
>>> d.root
<article>
<p>Plain Text vs <b>Bold</b></p>
</article>
XML streams (eg, XMPP) are also now supported with progressive parsing:
>>> import nodetree
>>> s = nodetree.Stream('<stream:stream xmlns="jabber:client" ' +
'xmlns:stream="http://etherx.jabber.org/streams">')
>>> s.send('<message><body>Hello, World!</body></message>')
>>> s.root.pop(0)
<message>
<body>Hello, World!</body>
</message>
>>> s.send('<message><body>This works')
>>> s.root.pop(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete branch
>>> s.send(' well</body></message>')
>>> s.root.pop(0)
<message>
<body>This works well</body>
</message>
This release also adds support for ProcessingInstruction nodes and fixes several bugs regarding XML branch splicing and merging.
Project details
Release history Release notifications | RSS feed
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.3.tar.bz2
(32.4 kB
view hashes)