code: def _hbf_handle_child_elements(self, obj, ntl):
          
          # accumulate a list of the children names in ko, and
          #   the a dictionary of tag to xml elements.
          # repetition of a tag means that it will map to a list of
          #   xml elements
          cd = {}
          ko = []
          ks = set()
          for child in ntl:
              k = child.nodeName
              if k == 'meta' and (not self._badgerfish_style_conversion):
                  matk, matv = self._transform_meta_key_value(child)
                  if matk is not None:
                      _add_value_to_dict_bf(obj, matk, matv)
              else:
                  if k not in ks:
                      ko.append(k)
                      ks.add(k)
                  _add_value_to_dict_bf(cd, k, child)
  
          # Converts the child XML elements to dicts by recursion and
          #   adds these to the dict.
          for k in ko:
              v = _index_list_of_values(cd, k)
              dcl = []
              ct = None
              for xc in v:
                  ct, dc = self._gen_hbf_el(xc)
                  dcl.append(dc)
              # this assertion will trip is the hacky stripping of namespaces
              #   results in a name clash among the tags of the children
              assert ct not in obj
              obj[ct] = dcl
  
          # delete redundant about attributes that are used in XML, but not JSON (last rule of HoneyBadgerFish)
          _cull_redundant_about(obj)
          return obj
docs: Indirect recursion through _gen_hbf_el