[XML-SIG] elementtree, element.text = value problem and a couple other questions

Fredrik Lundh fredrik at pythonware.com
Mon Dec 19 22:24:27 CET 2005


Fredrik Lundh wrote:

> here's a simple (and only lightly tested) in-place indenter:
>
> def indent(elem, level=0):
>     i = "\n" + level*"  "
>     if len(elem):
>         if not elem.text or not elem.text.strip():
>             elem.text = i + "  "
>         for elem in elem:
>             indent(elem, level+1)
>         if not elem.tail or not elem.tail.strip():
>             elem.tail = i
>     else:
>         if level and (not elem.tail or not elem.tail.strip()):
>             elem.tail = i

which can, in fact, be simplified too:

def indent(elem, level=0):
    i = "\n" + level*"  "
    if not elem.text or not elem.text.strip():
        elem.text = i + "  "
    for elem in elem:
        indent(elem, level+1)
    if not elem.tail or not elem.tail.strip():
        elem.tail = i

(however, this is perhaps a bit too clever...)

</F>





More information about the XML-SIG mailing list