code: def parse_any(stream_or_string):
      
  
      parser = make_parser(stream_or_string)
  
      (event, node) = six.next(parser)
  
      if event != pulldom.START_DOCUMENT:
          raise ParseError('Expecting document start')
  
      (event, node) = six.next(parser)
  
      if event != pulldom.START_ELEMENT:
          raise ParseError('Expecting element start')
  
      fn_name = 'parse_%s' % node.tagName.lower().replace('.', '_')
      fn = globals().get(fn_name)
      if fn is None:
          raise ParseError('No parser for element %s' % node.tagName)
  
      return fn(parser, event, node)
docs: Parse any XML string or stream. This function fabricates
         the names of the parser functions by prepending parse_ to
         the node name and then calling that function.