Nokogiri puede utilizar un analizador SAX para analizar un fragmento de HTML?
Pregunta
Tengo este código.
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'))
Ejecutar en un fragmento de HTML como este,
<h1>Hello</h1>
<p>Hi.</p>
la salida muestra que sólo el primer elemento se procesa:
start_element h1
characters Hello
end_element h1
Si envuelvo el fragmento de etiquetas html
y body
, toda la entrada se analiza.
¿Hay una manera de utilizar un analizador SAX estilo de fragmentos de HTML?
Solución
Es necesario para envolver su fragmento en un elemento raíz:
<div>
<h1>Hello</h1>
<p>Hi.</p>
</div>
debería resolver su problema.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow