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可能会完成这项工作(我还没有尝试过)。 –