0
我正在使用svgo(版本0.5.3)來縮小我的SVG文件。雖然SVG可以在瀏覽器中正確打開,縮小型給出錯誤,如:SVGO:錯誤「無效的字符實體」
錯誤解析:無效字符實體
我的SVG文件是:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg [
<!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
]>
<svg width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<g id="Layer_x0020_3">
<g>
<path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
</g>
</g>
</svg>
我縮小問題到<!ENTITY...
的定義。如果我刪除<!ENTITY...
的定義,SVGO不會報告任何錯誤。
看來開發者已經意識到這個問題:Error "Invalid character entity" for any input file。但他們沒有刨現在解決它:
作爲一個臨時的解決辦法,我建議關閉«保留Illustrator 編輯功能»和其他一些高級選項,如包括 XMP,在Illustrator SVG保存對話框。
但是,我們已經在項目中有數百個SVG文件。有什麼解決方法嗎?
或者有人可以推薦其他工具來最小化SVG文件嗎?
您可以通過運行腳本來批量處理文件,腳本將擴展實體。任何可以讀取XML文件並輸出結果的東西都可以。例如,xmllint可能會完成這項工作(我還沒有嘗試過)。 –