Comment puis-je convertir XML dans un objet Python?

J'ai besoin de charger un fichier XML et de convertir le contenu dans un orienté objet Python structure. Je veux profiter de cette:

<main>
    <object1 attr="name">content</object>
</main>

Et de le transformer en quelque chose comme ceci:

main
main.object1 = "content"
main.object1.attr = "name"

Les données XML ont une structure plus complexe que cela et je ne peux pas coder en dur les noms d'éléments. Les noms d'attribut doivent être recueillies lors de l'analyse et de les utiliser comme des propriétés de l'objet.

Comment puis-je convertir des données XML dans un objet Python?