W3cubDocs

/Nokogiri

class Nokogiri::HTML::DocumentFragment

Parent:
Nokogiri::XML::DocumentFragment

Public Class Methods

new(document, tags = nil, ctx = nil) Show source
# File lib/nokogiri/html/document_fragment.rb, line 15
def initialize document, tags = nil, ctx = nil
  return self unless tags

  if ctx
    preexisting_errors = document.errors.dup
    node_set = ctx.parse("<div>#{tags}</div>")
    node_set.first.children.each { |child| child.parent = self } unless node_set.empty?
    self.errors = document.errors - preexisting_errors
  else
    # This is a horrible hack, but I don't care
    if tags.strip =~ /^<body/i
      path = "/html/body"
    else
      path = "/html/body/node()"
    end

    temp_doc = HTML::Document.parse "<html><body>#{tags}", nil, document.encoding
    temp_doc.xpath(path).each { |child| child.parent = self }
    self.errors = temp_doc.errors
  end
  children
end
parse(tags, encoding = nil) Show source

Create a Nokogiri::XML::DocumentFragment from tags, using encoding

# File lib/nokogiri/html/document_fragment.rb, line 6
def self.parse tags, encoding = nil
  doc = HTML::Document.new

  encoding ||= tags.respond_to?(:encoding) ? tags.encoding.name : 'UTF-8'
  doc.encoding = encoding

  new(doc, tags)
end

© 2008–2016 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo
Patrick Mahoney, Yoko Harada, Akinori Musha, John Shahid
Licensed under the MIT License.