Hpricot / nokogiri - Разбор файла SVG / XML для получения используемых цветов - PullRequest
2 голосов
/ 20 марта 2012

Мне нужна помощь в поиске всех цветов, используемых в файле SVG (XML).

Например, мне нужен список цветов, используемых на изображении http://upload.wikimedia.org/wikipedia/commons/e/e9/Pepsi_logo_2008.svg

Я пытался с камнями hpricot / nokogiri сделать что-то вроде

-> doc.search ("['fill:']") .. и т. Д.

Но я не могу получить правильный результат.

Если есть какой-либо инструмент командной строки для linux , например, inkscape для получения цветов, это будет полезно.

1 Ответ

5 голосов
/ 20 марта 2012

Примерно так должно работать:

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
...