2012-03-20 56 views
2

我需要幫助來查找SVG(XML)文件中使用的所有顏色。Hpricot/nokogiri - 解析SVG/XML文件以獲得使用的顏色

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

我與角度來說,Hpricot /引入nokogiri寶石試圖做類似中使用的顏色列表,

- > doc.search(「[」填列:']「)..等

但我無法得到正確的結果。

如果有任何命令行工具爲linux像inkscape獲得顏色它將是有幫助的。

+0

類似http://stackoverflow.com/questions/9533947/counting-colors-in-an-svg – 2012-03-20 09:46:37

回答

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 
+0

這做了什麼,我需要...謝謝Guardiario .. :) 但有少數SVG的顏色不屬於樣式標籤(@style,「fill」)... 是否可以動態處理它們? – max 2012-03-20 09:55:59

+0

不客氣。不要忘記將它投票並標記爲正確。 – pguardiario 2012-03-20 09:57:26