# File src/rexml/text.rb, line 245 def Text::unnormalize( string, doctype=nil, filter=nil, illegal=nil ) rv = string.clone rv.gsub!( /\r\n?/, "\n" ) matches = rv.scan REFERENCE return rv if matches.size == 0 rv.gsub!( NUMERICENTITY ) {|m| m=$1 m = "0#{m}" if m[0] == ?x [Integer(m)].pack('U*') } matches.collect!{|x|x[0]}.compact! if matches.size > 0 if doctype matches.each do |entity_reference| unless filter and filter.include?(entity_reference) entity_value = doctype.entity( entity_reference ) re = /&#{entity_reference};/ rv.gsub!( re, entity_value ) if entity_value end end else matches.each do |entity_reference| unless filter and filter.include?(entity_reference) entity_value = DocType::DEFAULT_ENTITIES[ entity_reference ] re = /&#{entity_reference};/ rv.gsub!( re, entity_value.value ) if entity_value end end end rv.gsub!( /&/, '&' ) end rv end