# untangle
**Repository Path**: mirrors_stchris/untangle
## Basic Information
- **Project Name**: untangle
- **Description**: Converts XML to Python objects
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-01-07
- **Last Updated**: 2025-08-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
untangle
========
[](https://github.com/stchris/untangle/actions)
[](https://pypi.python.org/pypi/untangle)
[Documentation](http://readthedocs.org/docs/untangle/en/latest/)
* Converts XML to a Python object.
* Siblings with similar names are grouped into a list.
* Children can be accessed with ``parent.child``, attributes with ``element['attribute']``.
* You can call the ``parse()`` method with a filename, an URL or an XML string.
* Substitutes ``-``, ``.`` and ``:`` with ``_`` ```` can be accessed with ``foobar.foo_bar``, ```` can be accessed with ``foo_bar_baz`` and ```` can be accessed with ``foo_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](https://github.com/conda-forge/untangle-feedstock/issues).
Usage
-----
(See and run examples.py or this blog post: [Read XML painlessly](http://pythonadventures.wordpress.com/2011/10/30/read-xml-painlessly/) for more info)
```python
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
```
allows it to be navigated from the ``untangle``d object like this:
```python
obj.root.child['name'] # u'child1'
```
Changelog
---------
see CHANGELOG.md