Peut-Nokogiri utiliser un analyseur SAX pour analyser un fragment HTML?
Question
Je le 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'))
Exécuter sur un fragment HTML comme celui-ci,
<h1>Hello</h1>
<p>Hi.</p>
la sortie indique que seul le premier élément est traité:
start_element h1
characters Hello
end_element h1
Si j'Enroulez le fragment dans les balises html
et body
, l'entrée entière est analysée.
Y at-il un moyen d'utiliser un analyseur de style SAX sur des fragments HTML?
La solution
Vous avez besoin d'envelopper votre fragment dans un élément racine:
<div>
<h1>Hello</h1>
<p>Hi.</p>
</div>
devrait résoudre votre problème.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow