构建Atom Feed遇W3C验证XML格式错误,求问题原因
分析Atom Feed XML解析错误的原因
这个错误的核心原因非常明确:你的URL里的&符号没有在XML中进行转义处理。
XML是一套严格的标记规范,其中&属于保留的特殊字符——它专门用来标识XML实体(比如&对应普通的&,<对应<)。当XML解析器读到<id>标签里的u=2bfa40e46beb7840286deead5&id=fe176e8c71这段内容时,会把&当成一个实体的起始标记,试图寻找对应的实体名称(比如合法的amp),但这里&后面直接跟着id,并不是标准的XML实体格式,所以解析器直接抛出了"not well-formed (invalid token)"的格式错误。
要修复这个问题,你需要把URL里所有的&替换成XML实体&。修正后的<id>标签内容应该是:
<id>https://omissis.invalid/track/click?u=2bfa40e46beb7840286deead5&id=fe176e8c71&e=317c895d8d</id>
在Google Apps Script里,你可以用字符串替换方法批量处理:
const encodedUrl = originalUrl.replace(/&/g, '&');
这样处理后,XML解析器就能正确识别URL内容,不会把&误判为实体起始符了。
内容的提问来源于stack exchange,提问作者tic
相关产品推荐
相关产品推荐

