티스토리 뷰

이번 예제에서는 Nokogiri Gem 을 이용하여 XML을 파싱을 해보겠습니다.

예제의 내용은 네이버 지도 API에서 출력해주는 XML 을 파싱하는 내용입니다.



위 그림은 Kisti 라는 검색 key를 입력했을 때의 출력 xml 입니다.

대충 필요한 title, address, mapx, mapy 태그의 값을 뽑아보겠습니다.


1. Gemfile 에 nokogiri 를 추가하여 설치를 해줍니다.


$ bundle install


2. 작업을 하고자하는 Controller 에 파싱작업을 진행합니다.



위의 그림에서 처럼 컨트롤러의 액션에서

url 변수에 파싱하고자하는 url 주소를 저장하고 이를 Nokogiri::XML(open(url)) 함수를 이용해서 xml 문서를 받아 doc 변수에 저장을 합니다.

그리고 xml 문서가 저장되어있는 doc에서 데이터를 뽑고자 하는 최상위 태그를 xpath 를 이용해 지정해주면 됩니다.


제일 위에서 보여준 xml 그림에서 출력값은 item 태그를 기준으로 반복이 됩니다. 그러므로 예제에서 item 을 기준으로 데이터를 뽑도록 하였습니다.

그리고 뽑아내고자 하는 태그들을 뽑아 해쉬로 저장하면 됩니다.


3. 뽑아낸 결과를 view 에서 확인합니다.

이제 제대로 파싱이 됬는지 view 에서 확인을 해보면


우선 전체 사이즈와 첫번째 해쉬, 그리고 그 속의 :title, :address 값을 출력해보겠습니다.

결과는,



제대로 파싱이 된 것을 확인할 수 있습니다.

이상 Rails 에서 Nokogiri gem 을 이용한 간단한 XML 파싱방법이였습니다.


댓글