我正在尝试读取RSS字段并为Ruby中的每个项添加一些元数据,输出另一个有效的RSS源。
我想在一次通过中执行此操作,而不是出于性能原因将整个RSS提要读入内存,但我一直在使用libxml-ruby并且Reader对象似乎无法打印出来它刚刚读取的当前元素,这使得很难遍历XML文件并打印出每个元素。
示例:
<rdf:RDF>
<item>
<description>foo</description>
</item>
</rdf:RDF>
应该成为
<rdf:RDF>
<item>
<metadata>(some metadata about this item)</metadata>
<description>foo</description>
</item>
</rdf:RDF>
我并不依赖于libxml-ruby,但Nokogiri也是基于libxml构建的,似乎也有相同的限制,根据我看过的每篇文章,REXML看起来都太慢了。
任何帮助将不胜感激!
否则,我想现在是正则表达式的时候......
答案 0 :(得分:0)
只是一个开始。
f=0
File.readlines("file").each do |line|
f=0 if line[/<\/rdf/]
f=1 if line[/<rdf:RDF/]
if f==1 and line["description"]
line="<meta ...>\n" + line
end
puts line
end