Nokogiri::HTML::DocumentFragment

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.

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部