# File rexml/element.rb, line 956 def parse source # Get the next tag self.name, closed, attrs = Element.base_parser(source) attrs.each do |set| @attributes.add( Attribute.new( set[0], set[2] ) ) end unless closed parse_children source raise ParseException.new( "Missing end tag for #{expanded_name}", source, self) unless source.match(/^\s*<\/#@expanded_name\s*>/um, true) end rescue ParseException $!.source = source $!.element = self raise rescue Exception old_ex = $! raise ParseException.new("unidentified error", source, self, old_ex) end