내가이 샘플 XML 파일을 구문 분석하는 것을 시도하고있다 : 여기루프를 사용하여 Nokogiri CSS 선택기로 XML을 구문 분석하는 방법은 무엇입니까?
<Collection version="2.0" id="74j5hc4je3b9">
<Name>A Funfair in Bangkok</Name>
<PermaLink>Funfair in Bangkok</PermaLink>
<PermaLinkIsName>True</PermaLinkIsName>
<Description>A small funfair near On Nut in Bangkok.</Description>
<Date>2009-08-03T00:00:00</Date>
<IsHidden>False</IsHidden>
<Items>
<Item filename="AGC_1998.jpg">
<Title>Funfair in Bangkok</Title>
<Caption>A small funfair near On Nut in Bangkok.</Caption>
<Authors>Anthony Bouch</Authors>
<Copyright>Copyright © Anthony Bouch</Copyright>
<CreatedDate>2009-08-07T19:22:08</CreatedDate>
<Keywords>
<Keyword>Funfair</Keyword>
<Keyword>Bangkok</Keyword>
<Keyword>Thailand</Keyword>
</Keywords>
<ThumbnailSize width="133" height="200" />
<PreviewSize width="532" height="800" />
<OriginalSize width="2279" height="3425" />
</Item>
<Item filename="AGC_1164.jpg" iscover="True">
<Title>Bumper Cars at a Funfair in Bangkok</Title>
<Caption>Bumper cars at a small funfair near On Nut in Bangkok.</Caption>
<Authors>Anthony Bouch</Authors>
<Copyright>Copyright © Anthony Bouch</Copyright>
<CreatedDate>2009-08-03T22:08:24</CreatedDate>
<Keywords>
<Keyword>Bumper Cars</Keyword>
<Keyword>Funfair</Keyword>
<Keyword>Bangkok</Keyword>
<Keyword>Thailand</Keyword>
</Keywords>
<ThumbnailSize width="200" height="133" />
<PreviewSize width="800" height="532" />
<OriginalSize width="3725" height="2479" />
</Item>
</Items>
</Collection>
것은 내 현재 코드입니다 :
require 'nokogiri'
doc = Nokogiri::XML(File.open("sample.xml"))
somevar = doc.css("collection")
#create loop
somevar.each do |item|
puts "Item "
puts item['Title']
puts "\n"
end#items
는 XML 문서의 루트에서 시작하여, 나는 루트에서 이동하기 위해 노력하고있어 "컬렉션"은 각각의 새로운 수준으로 내려갑니다.
노드 집합에서 시작하여 노드에서 정보를 가져오고 노드에 요소가 포함되어 있습니다. 노드를 변수에 어떻게 할당하고 그 아래의 모든 단일 레이어와 텍스트를 추출합니까?
아래 코드와 같은 것을 할 수 있지만 루프를 사용하여 XML의 각 중첩 요소를 체계적으로 이동하고 각 줄의 데이터를 출력하는 방법을 알고 싶습니다. 텍스트 표시가 끝나면 이전 요소/노드로 이동할 수 있습니다 (트리의 노드를 통과 함). NodeSet
의 방법이 차례로 포함 된 모든 노드에서 작동하는 경향이 중요한 의미 차이
puts somevar.css("Keyworks Keyword").text
그래서 XML을 파싱 할 때 무엇을 캡처하고 싶습니까? 구문 분석 및 통과는 문제가되지 않지만 실제로 달성하려는 대상을 알아야합니다. –
체크 아웃이 색소폰 파싱 옵션, http://amolnpujari.wordpress.com/2012/03/31/reading_huge_xml-rb/ 새로운 OX 루비 파서는 Nokogiri, https://gist.github.com/보다 5 배 빠릅니다. amolpujari/5966431 –