XPath.each( xmldoc, "//speech/speaking") do |element|
# puts element.attributes['name']
# puts element.text
File.open(file_name + "_" + element.attributes['name'] + "-" + year + ".xml", 'a+') do |f|
f.write("<speaker>" + element.attributes['name'] + "</speaker>")
f.write("<speech>" + doc.xpath('//speech/speaking').text + "</speech>" + "\n")
end
end
こんにちは、stackoverflow XML ファイルで発生しているロジックの問題を解決するためのヘルプを探しています。上記のコードは、「スピーカー」という名前のファイルを作成し、スピーカーの発言をそのファイルに配置する必要があります。
私が直面している問題は、すべてのスピーカーを同じファイルに配置することです。だから私は問題がここにあると考えています:
f.write("<speech>" + doc.xpath('//speech/speaking').text + "</speech>" + "\n")
誰かがこれを行うより良い方法を持っていることを願っていますが、上記のコードを次のように変更することをお勧めします。
doc.xpath('//speech/speaking').text WHERE speaker == element.attributes['name']
最終的には、各スピーカーを独自のスピーチとともに独自の XML ファイルに収めたいと考えています。
<speaking name="Mr. FAZIO">I appreciate my friend yielding.</speaking>
上記は XML ファイルのサンプルです。