gpt4 book ai didi

xml - 实体 'acirc' 未从 simplexml_load_string 定义

转载 作者:可可西里 更新时间:2023-10-31 22:58:38 26 4
gpt4 key购买 nike

所以我有一个 PHP 脚本,它解析来自 Google Analytics 的 XML 响应。它已经工作了几个星期,但今天我收到了这个警告,简单的 xml 加载字符串没有将 xml 响应转换为 simplexml 对象。

Message: simplexml_load_string(): Entity: line 743: parser error : Entity 'acirc' not defined

在将响应传递到 simplexml_load_string 之前,我尝试过对响应进行 utf8_encoding,但它不起作用。我相信 acirc 是一个编码符号,这个符号以某种方式搞砸了解析器?

上面的警告我收到了两次,然后我也收到了两次:

Message: simplexml_load_string(): Entity: line 743: parser error : Entity 'cent' not defined

任何建议都会有很大的帮助,谢谢!

感谢 Marc 的评论,我已经试过了:

$xml = simplexml_load_string(htmlspecialchars_decode($response_body));

我得到了一个有趣的错误,但是 xml 对象仍然是空的:

Entity: line 743: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0x84 0x26 0x63 0x65

最佳答案

要从中创建 SimpleXMLElement 的字符串不是有效的 XML。简单的 xml 函数只能处理有效的 XML。对于任何无效的东西,你都会得到错误,而不是元素。在处理数据时,您已经发现了一些错误。

第一个错误只是您的 XML 具有未定义实体的信息。由于我不明白的原因,您发现特别有趣的第二个错误是因为您真的将字符串丢弃到某种编码必杀技中。因此,即使字符串不再被正确编码以供 simplexml 处理。

如果您得到的响应确实应该是有效的 XML,则向谷歌提交错误报告,让他们修复损坏的输出,然后您的问题应该得到解决。

编辑:

您是从浏览器复制粘贴的吗?如果是这样,请尝试在将其加载为 XML 之前对其运行 html_entity_decode()。可能您加载的不是 XML,而是 HTML。最好改用 DomDocumentloadHTML 函数,这样就不需要解码任何东西了。

关于xml - 实体 'acirc' 未从 simplexml_load_string 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com