본문 바로가기
카테고리 없음

nokogiri 복습

by 감토끼 2010. 8. 19.





nokogiri는 hpricot과 비슷하다고 한다. 무엇이 다른지 궁금하다.
사용법이 생각보단 간단해서 놀랬다.ㅋㅋ




nokogiri의 data structure
nokogiri는 읽어들인 html 문서를 트리형태로 유지한다.
각각은 노드로 표현됨. 
각 노드들은 parent, children, next_sibling, previous_sibling 을 가진다.

문서 정보를 유지하는 방법? 이 dom, sax 등 네가지가 있다고 하는데
무슨 말인지 잘 모르겠다. 꼭 공부하자!!
dom 이 가장 많이 쓰고 쉽다고 하는것 같다.

nokogiri로 노드들을 탐색하는 방법은 총 3가지 이다.
xpath 스타일, 
css 스타일, 
nokogiri api 이용
 



xpath vs css
xpath 와 css 는 사용방법이 거의 같지만 약간의 차이가 있다. 
css는 xpath 보다 더 간결하고 보기 쉽다.
그러나 xpath에선 되는데 css에선 안되는 것도 있다고 한다.

예를들어, <h1 class = "r foo"> 가 있을때
doc.xpath('//h1[@class = "r"]') 과
doc.css('h1.r') 로 매칭을 시도하면
css에서는 매칭이 되버린다. (나는 이게 안좋다고 생각한다 ㅋ, 용도에 따라 다를수도 있지만)

그 밖에 또 어떤 차이가 있는지 궁금하다.