class Nokogiri::HTML::Document

def fragment tags = nil

Create a Nokogiri::XML::DocumentFragment from +tags+
###
def fragment tags = nil
  DocumentFragment.new(self, tags, self.root)
end

def meta_content_type

def meta_content_type
  css('meta[@http-equiv]').find { |node|
    node['http-equiv'] =~ /\AContent-Type\z/i and
      !node['content'].nil? and
      !node['content'].empty?
  }
end

def meta_encoding

then nil is returned.
Get the meta tag encoding for this document. If there is no meta tag,
##
def meta_encoding
  meta = meta_content_type and
    match = /charset\s*=\s*([\w-]+)/i.match(meta['content']) and
    match[1]
end

def meta_encoding= encoding

content tag, the encoding is not set.
Set the meta tag encoding for this document. If there is no meta
##
def meta_encoding= encoding
  meta = meta_content_type and
    meta['content'] = "text/html; charset=%s" % encoding
end

def parse string_or_io, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML

Nokogiri::XML::ParseOptions.
Nokogiri::XML::ParseOptions::RECOVER. See the constants in
is a number that sets options in the parser, such as
encoding that should be used when processing the document. +options+
+url+ is resource where this document is located. +encoding+ is the
responds to _read_ and _close_ such as an IO, or StringIO.
Parse HTML. +string_or_io+ may be a String, or any object that
##
def parse string_or_io, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML
  options = Nokogiri::XML::ParseOptions.new(options) if Fixnum === options
  # Give the options to the user
  yield options if block_given?
  if string_or_io.respond_to?(:encoding)
    unless string_or_io.encoding.name == "ASCII-8BIT"
      encoding ||= string_or_io.encoding.name
    end
  end
  if string_or_io.respond_to?(:read)
    url ||= string_or_io.respond_to?(:path) ? string_or_io.path : nil
    if !encoding
      # Libxml2's parser has poor support for encoding
      # detection.  First, it does not recognize the HTML5
      # style meta charset declaration.  Secondly, even if it
      # successfully detects an encoding hint, it does not
      # re-decode or re-parse the preceding part which may be
      # garbled.
      #
      # EncodingReader aims to perform advanced encoding
      # detection beyond what Libxml2 does, and to emulate
      # rewinding of a stream and make Libxml2 redo parsing
      # from the start when an encoding hint is found.
      string_or_io = EncodingReader.new(string_or_io)
      begin
        return read_io(string_or_io, url, encoding, options.to_i)
      rescue EncodingFound => e
        encoding = e.found_encoding
      end
    end
    return read_io(string_or_io, url, encoding, options.to_i)
  end
  # read_memory pukes on empty docs
  return new if string_or_io.nil? or string_or_io.empty?
  encoding ||= EncodingReader.detect_encoding(string_or_io)
  read_memory(string_or_io, url, encoding, options.to_i)
end

def serialize options = {}


end
config.format.as_xml
node.serialize(:encoding => 'UTF-8') do |config|

or

node.serialize(:encoding => 'UTF-8', :save_with => FORMAT | AS_XML)

These two statements are equivalent:

block. See SaveOptions.
Serialize Node using +options+. Save options can also be set using a
###
def serialize options = {}
  options[:save_with] ||= XML::Node::SaveOptions::DEFAULT_HTML
  super
end

def title

no title tag.
Get the title string of this document. Return nil if there is
##
def title
  title = at('title') and title.inner_text
end

def title=(text)

element, the title is not set.
Set the title string of this document. If there is no head
##
def title=(text)
  unless title = at('title')
    head = at('head') or return nil
    title = Nokogiri::XML::Node.new('title', self)
    head << title
  end
  title.children = XML::Text.new(text, self)
end