Ruby XML从一种XML读取并解析为另一种XML


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文件的逻辑问题。上面的代码创建了一个名为"speakers"的文件,然后它应该将speaker所说的话放入该文件中。

我遇到的问题是,它把所有的扬声器到同一个文件。所以我认为问题在这里:

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>

您要查找的xpath是:

doc.xpath("//speech/speaking[@name='#{element.attributes['name']}']").text

参见XPath根据属性值选择元素

相关内容

  • 没有找到相关文章

最新更新