【发布时间】:2017-11-07 15:27:02
【问题描述】:
我正在使用 PHP 的 SimpleXML 处理一个 XML 文件,并得到这个错误:
Message: simplexml_load_string(): Entity: line 9: parser error : EntityRef: expecting ';'
快速的 Google 搜索显示,这通常是由未转义的 & 引起的 - 在 Stack Overflow 上有十几个问题的答案。但是,这是文件的第 9 行:
<p>In-kingdom commentary on the following items can be found on the November LoP. https://oscar.sca.org/kingdom/kingloi.php?kingdom=9&loi=4191</p>
如您所见,& 被转义了。对该文件的文本搜索未发现其他 & 实例。
我错过了什么?
请注意:我无法编辑 XML 文件 - 我必须按原样处理,只修复我的代码中的内容。我目前使用以下代码打开 XML:
$rawstring = file_get_contents($filename);
$safestring = html_entity_decode($rawstring, 0, 'ISO-8859-1');
$xmlstring = simplexml_load_string($safestring);
(html_entity_decode 是必需的,因为文件使用 Latin-1 编码,simplexml 需要 UTF-8)
帮助表示赞赏。
【问题讨论】: