我想将以下有关历史发明的数据收集到一个方便的 Ruby 数据结构中:
http://yootles.com/outbox/inventions.xml
请注意,所有数据都在 XML 属性中。
似乎应该有几行代码的快速解决方案。使用 Rails 会有 Hash.from_xml 虽然我不确定它会正确处理属性。无论如何,我需要它作为一个独立的 Ruby 脚本。 根据有人发布的类似问题的代码,对于这个简单的任务, Nokogiri似乎过于复杂:http: //gist.github.com/335286。我找到了一个使用 hpricot 的据称简单的解决方案,但它似乎无法处理 XML 属性。也许这是一个简单的扩展?最后是ROXML,但它看起来比 nokogiri 更重量级。
为了使问题具体化(并且具有明显的别有用心),假设答案应该是一个完整的 Ruby 脚本,它从上述 URL 中读取 XML 并像这样吐出 CSV:
id, invention, year, inventor, country
RslCn, "aerosol can", 1926, "Erik Rotheim", "Norway"
RCndtnng, "air conditioning", 1902, "Willis Haviland Carrier", "US"
RbgTmtv, "airbag, automotive", 1952, "John Hetrick", "US"
RplnNgnpwrd, "airplane, engine-powered", 1903, "Wilbur and Orville Wright", "US"
我会自己解决并发布它,除非有人用明显优越的东西击败我。谢谢!