untangle

1.2.1 · active · verified Wed Apr 15

untangle is a tiny Python library for parsing XML documents, converting them into easy-to-use Python objects. It simplifies accessing data in XML files using dot notation for elements and dictionary-like access for attributes. The current version is 1.2.1, released in July 2022, and it has an infrequent release cadence.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to parse an XML string and access elements, attributes (using dictionary-like syntax), and text content (cdata) using dot notation. Note that sibling elements with the same tag are automatically grouped into a list.

import untangle

xml_data = """<?xml version="1.0"?>
<data>
    <user id="123" status="active">
        <name>Alice</name>
        <email>alice@example.com</email>
    </user>
    <user id="456" status="inactive">
        <name>Bob</name>
        <email>bob@example.com</email>
    </user>
</data>"""

# Parse the XML string
doc = untangle.parse(xml_data)

# Accessing the root element (data)
print(f"Root element tag: {doc.data._tag}")

# Accessing the first user element and its attributes/cdata
first_user = doc.data.user[0]
print(f"First user ID: {first_user['id']}")
print(f"First user Status: {first_user['status']}")
print(f"First user Name: {first_user.name.cdata}")
print(f"First user Email: {first_user.email.cdata}")

# Iterating through users
for user in doc.data.user:
    print(f"User (ID: {user['id']}): {user.name.cdata} <{user.email.cdata}>")

view raw JSON →