You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用svgson与svg-path-to-polygons解析SVG路径遇语法错误如何解决?

解决svg-path-to-polygons解析SVG路径时的peg$SyntaxError错误

错误原因

你的SVG路径d属性中包含HTML实体
(代表换行符),而svg-path-to-polygons的解析器仅支持SVG规范定义的路径语法,无法识别这种HTML转义字符,因此抛出了包含"&"的语法错误。这个实体是svgson解析SVG时,将原始SVG中的换行符转义生成的。

解决方案

在调用svg-path-to-polygons解析前,先对d属性字符串进行HTML实体解码,将
转换为原始的换行符(或直接替换为空格,SVG路径中空格和换行都是合法的分隔符)。

方法1:手动替换实体

直接用字符串替换处理d属性:

// 获取path元素的d属性
const rawD = pathElement.attributes.d;
// 将
替换为换行符(或空格' ')
const cleanedD = rawD.replace(/
/g, '\n');

// 现在解析处理后的路径
const polygons = svgPathToPolygons(cleanedD, { tolerance: 1 });

方法2:使用HTML实体解码库

如果你的SVG中还有其他HTML实体(比如&等),可以使用专门的解码库(如he)处理:

const he = require('he');

const rawD = pathElement.attributes.d;
const cleanedD = he.decode(rawD);

const polygons = svgPathToPolygons(cleanedD, { tolerance: 1 });

验证步骤

  1. 复制你的d属性字符串,手动将所有
替换为换行或空格。
  2. 用处理后的字符串调用svg-path-to-polygons,确认解析正常。

这样就能解决语法错误,成功解析路径生成多边形。

内容的提问来源于stack exchange,提问作者HEMAL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:56:03