4

私はノコギリを始めたばかりで、質問があります。皆さんが私を助けてくれることを願っています:

  1. XML ファイルのセット (5 つのファイルとしましょう) を解析する必要があります。
  2. XPATH を使用して、City = "London" などの特定の値を持つ要素を検索します。
  3. ステップ 2 の前の XPATH クエリの結果を含む新しい XML ファイルを作成します。
4

1 に答える 1

19

以下は、間違っている可能性がある状況についていくつかの仮定を立てています (つまり、「都市」は属性ではなくノードであり、すべてのファイルが単一のディレクトリにあるということです) が、それに合わせて微調整できるはずです。あなたの要望。

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
于 2009-07-13T22:10:23.367 に答える