Skip to content

Instantly share code, notes, and snippets.

@waylan
Forked from anonymous/etree_with_parent.py
Created March 5, 2013 15:13
Show Gist options
  • Save waylan/5090984 to your computer and use it in GitHub Desktop.
Save waylan/5090984 to your computer and use it in GitHub Desktop.
from xml.etree import ElementTree as etree
class _ElementInterface(etree._ElementInterface):
""" Add a 'parent' property to ElementTree Elements. Defaults to None. """
parent = None
etree._ElementInterface = _ElementInterface
def SubElement(parent, tag, attrib={}, **extra):
""" Replace SubElement factory func with one that also sets an Element's parent. """
attrib = attrib.copy()
attrib.update(extra)
element = parent.makeelement(tag, attrib)
parent.append(element)
element.parent = parent
return element
etree.SubElement = SubElement
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment