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

max*_*max 2 ruby svg hpricot nokogiri xml-parsing

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

例如,我需要图像中使用的颜色列表http://upload.wikimedia.org/wikipedia/commons/e/e9/Pepsi_logo_2008.svg

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

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

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

如果有像inkscape这样的linux命令行工具来获取颜色会有所帮助.

pgu*_*rio 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
Run Code Online (Sandbox Code Playgroud)