Method: IsoDoc::Function::Utils#to_xhtml

Defined in:
lib/isodoc/function/utils.rb

#to_xhtml(xml) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/isodoc/function/utils.rb', line 45

def to_xhtml(xml)
  xml.gsub!(/<\?xml[^>]*>/, "")
  /<!DOCTYPE /.match xml or xml = DOCTYPE_HDR + xml
  xml = xml.split(/(\&[^ \r\n\t#;]+;)/).map do |t|
    /^(\&[^ \t\r\n#;]+;)/.match(t) ? 
      HTMLEntities.new.encode(HTMLEntities.new.decode(t), :hexadecimal) : t
  end.join("")
  Nokogiri::XML.parse(xml)
end