2010-03-16 6 views
3

이 코드가 있습니다.Nokogiri는 SAX 파서를 사용하여 HTML 조각을 파싱 할 수 있습니까?

start_element h1 
characters Hello 
end_element h1 

I가 htmlbody 태그 조각을 감싸는 경우

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> 

출력은 첫 번째 요소가 처리되는 것을 도시 , 전체 입력이 구문 분석됩니다.

HTML 조각에 SAX 스타일 파서를 사용하는 방법이 있습니까?

답변

2

당신은 루트 요소에 조각을 포장해야합니다

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

이 문제를 해결해야한다.