docs: def node_to_elem(root):
      """
      Convert (recursively) a Node object into an ElementTree object.
      """
      def generate_elem(append, node, level):
          var = "e" + str(level)
          arg = repr(node.tag)
          if node.attrib:
              arg += ", **%r" % node.attrib
          if level == 1:
              append("e1 = Element(%s)" % arg)
          else:
              append("%s = SubElement(e%d, %s)" % (var, level - 1, arg))
          if not node.nodes:
              append("%s.text = %r" % (var, node.text))
          for x in node:
              generate_elem(append, x, level + 1)
      # generate code to create a tree
      output = []
      generate_elem(output.append, root, 1)  # print "\n".join(output)
      namespace = {"Element": ElementTree.Element,
                   "SubElement": ElementTree.SubElement}
      exec("\n".join(output), globals(), namespace)
      return namespace["e1"]