hexo sitemap 异常处理

这一切的传说都不足以描述他们的真面目。当她现身人类面前时,远比任何传说都更加狰狞和威严。

访问http://www.langzi.fun/sitemap.xml的时候,出现了下面的错误

This page contains the following errors:
error on line 33 at column 52: EntityRef: expecting ';'
Below is a rendering of the page up to the first error.

一开始以为是编码的问题,把sitemap.xml重新编码成Unicode和utf-8都不可以,怀疑是hexo的sitemap的插件冲突了。但是觉得不应该,因为目录下生成了sitemap.xml。

后来查阅xml的相关资料才明白问题出在哪儿,因为大多数浏览器在显示xml文件时,显示的并不是文件源码,而是经过“xml解析器”解析后的结果。但是,“xml解析器”在遇到字符“&”时,会把“&”当做一个实体引用的开始,而去寻找这个实体引用的结束符号“;”。

问题出现在我之前有一篇文章,标题为

bettercap&xerosploit 嗅探劫持

标题中的&与xml中出现了冲突,重新修改了标题后就恢复正常了

在xml文档中,像“&”这样的预定义的实体引用一共有5个,分别是“&”、“<”、“>”、“’”、“””。

把实体引用编码后使用,即

把“&”编码为 “&amp;” 
把“<”编码为“&lt;” 
把“>”编码为 “&gt;” 
把“'”编码为 “&apos;” 
把“"”编码为 “&quot;” 

针对本文上面的问题,即把原来代码中的这些字符转义;

坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%