鋸山は、HTMLフラグメントを解析するSAXパーサーを使用することはできますか?

StackOverflow https://stackoverflow.com/questions/2452271

質問

私はこのコードを持っています。

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

このようなHTMLフラグメントに実行し、

<h1>Hello</h1> 
<p>Hi.</p>

出力は、最初の要素だけが処理されることを示しています。

start_element h1
characters Hello
end_element h1
私はhtmlbodyタグでフラグメントをラップした場合は、

、入力全体が解析されます。

HTMLフラグメントにSAXスタイルのパーサを使用する方法はありますか?

役に立ちましたか?

解決

あなたはルート要素であなたのフラグメントをラップする必要があります:

<div>
<h1>Hello</h1> 
<p>Hi.</p>
</div>

あなたの問題を解決する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top