Awesome
untangle
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
- Converts XML to a Python object.
- Siblings with similar names are grouped into a list.
- Children can be accessed with
parent.child
, attributes withelement['attribute']
. - You can call the
parse()
method with a filename, an URL or an XML string. - Substitutes
-
,.
and:
with_
<foobar><foo-bar/></foobar>
can be accessed withfoobar.foo_bar
,<foo.bar.baz/>
can be accessed withfoo_bar_baz
and<foo:bar><foo:baz/></foo:bar>
can be accessed withfoo_bar.foo_baz
- Works with Python 3.7 - 3.10
Installation
With pip:
pip install untangle
With conda:
conda install -c conda-forge untangle
Conda feedstock maintained by @htenkanen. Issues and questions about conda-forge packaging / installation can be done here.
Usage
(See and run <a href="https://github.com/stchris/untangle/blob/main/examples.py">examples.py</a> or this blog post: Read XML painlessly for more info)
import untangle
obj = untangle.parse(resource)
resource
can be:
- a URL
- a filename
- an XML string
Running the above code and passing this XML:
<?xml version="1.0"?>
<root>
<child name="child1"/>
</root>
allows it to be navigated from the untangle
d object like this:
obj.root.child['name'] # u'child1'
Changelog
see CHANGELOG.md