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
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