2009-07-13 5 views
4

난 그냥 노코 기리로 시작하고 질문이있어는 너희들이 나를 도울 수 있기를 바랍니다 :nokogiri로 XML 파일을 구문 분석하고 결과를 새 파일에 저장하는 방법은 무엇입니까?

  1. 내가 XML 파일의 집합을 분석 할 필요가있다 (의 5 개 파일을 가정 해 봅시다).
  2. XPATH를 사용하여 특정 값 (예 : City = "London")의 요소를 찾습니다.
  3. 그 단계에서 이전 XPATH 쿼리의 결과를 포함, 새로운 XML 파일을 만듭니다 2
+0

작성한 코드를 표시하거나 검색 한 위치와 시도한 것을 설명하고 도움이되지 않은 이유를 설명해 줄 것을 요청할 때. 이 질문은 매우 광범위하며 어떤 노력이나 연구도 보이지 않으며 앞으로는 누구에게도 도움이되지 않습니다. –

답변

18

다음은 "도시"노드임을, 즉 (잘못 될 수 있습니다 상황에 대한 몇 가지 가정을 속성이 아니라 모든 파일이 단일 디렉토리에 있음).하지만 사용자의 요구에 맞게 조정할 수 있어야합니다.

require 'rubygems' 
require 'nokogiri' 

Dir.glob("*.xml").each do |filename| 
    input = Nokogiri::XML(File.new(filename)) 
    output = Nokogiri::XML::Document.new 
    output.root = Nokogiri::XML::Node.new("output", output) 
    input.root.xpath("//*[city='London']").each {|n| output.root << n} 
    File.open("out_" + filename, 'w') {|f| f.write(output.to_xml) } 
end