WordPress导出XML提示iacute实体未定义语法错误如何解决
错误原因
XML 1.0 规范仅预定义了5个基础实体:&、<、>、"、'。í属于HTML专属命名实体,不在XML默认支持的实体范围内。WordPress导出逻辑未对内容里的HTML实体做适配,直接写入XML文件后,就会触发「引用未定义实体」的校验错误。
修复方法
根据文件大小和使用场景,三选一即可:
- 直接替换为UTF-8原生字符
导出文件本身就是UTF-8编码,直接用支持大文件的文本编辑器(VS Code、Notepad++等)做全局替换,把所有HTML命名实体替换成对应原生字符即可,比如í替换为í、ñ替换为ñ、ó替换为ó。替换完成后即可正常通过XML校验,是最简洁的方案。 - 替换为XML原生数字实体
如果不方便直接写入特殊字符,可以把所有HTML命名实体替换为对应Unicode数字实体,比如í对应í。数字实体是XML原生支持的格式,不需要额外定义,替换后可直接通过校验。 - 补全XML实体定义
不想修改正文内容的话,可以在首行XML声明<?xml version="1.0" encoding="UTF-8" ?>下方添加DOCTYPE声明,手动定义文件中用到的所有HTML实体。WordPress导出的XML根节点为rss,针对当前的iacute实体,添加的代码如下:<!DOCTYPE rss [ <!ENTITY iacute "í"> <!-- 其余用到的实体按照相同格式逐行补充即可 --> ]>
注意:不要直接引入全量HTML DTD,会大幅增加XML解析开销,甚至导致解析超时,仅补充文件内实际用到的实体即可。
内容的提问来源于stack exchange,提问作者Web App Developer Freelance
相关产品推荐
相关产品推荐

