Hpricot / nokogiri - 解析SVG / XML文件以获取颜色

时间:2012-03-20 08:49:54

标签: ruby svg xml-parsing nokogiri hpricot

我需要帮助查找SVG(XML)文件中使用的所有颜色。

例如,我需要图像http://upload.wikimedia.org/wikipedia/commons/e/e9/Pepsi_logo_2008.svg

中使用的颜色列表

我正在尝试用hpricot / nokogiri宝石来做类似的事情,

- > doc.search(“['fill:']”)..等等

但我无法得到正确的结果。

如果有任何命令行工具for linux (如inkscape)获取颜色会有所帮助。

1 个答案:

答案 0 :(得分:5)

这样的事情应该有效:

require 'nokogiri'
require 'open-uri'

url = 'http://upload.wikimedia.org/wikipedia/commons/e/e9/Pepsi_logo_2008.svg'
doc = Nokogiri::HTML open(url)
puts doc.xpath('//*[contains(@style,"fill")]').map{|e| e[:style][/fill:([^;]*)/, 1]}.uniq