Can Nokogiri verwenden, um einen SAX-Parser ein HTML-Fragment zu analysieren?
Frage
Ich habe diesen Code.
class MyParser < Nokogiri::XML::SAX::Document
def characters(string)
LOG.debug("characters #{string}")
end
def start_element(name, attrs = [])
LOG.debug("start_element #{name}")
end
def end_element(name)
LOG.debug("end_element #{name}")
end
end
parser = Nokogiri::HTML::SAX::Parser.new(MyParser.new)
parser.parse(File.new($*[0], 'rb'))
Ausführen auf einem HTML-Fragment wie diese,
<h1>Hello</h1>
<p>Hi.</p>
Die Ausgabe zeigt, dass nur das erste Element verarbeitet wird:
start_element h1
characters Hello
end_element h1
Wenn ich das Fragment in html
und body
Tags wickeln die gesamte Eingabe analysiert wird.
Gibt es eine Möglichkeit, einen SAX-Parser-Stil zu verwenden, auf HTML-Fragmente?
Lösung
Sie benötigen Fragment in einem Wurzelelement wickeln:
<div>
<h1>Hello</h1>
<p>Hi.</p>
</div>
Ihr Problem lösen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow