我正在使用 QBXML 与 Quickbooks 集成。我正在运行客户查询,Quickbooks 返回的 XML 似乎包含无效字符 (!)。
查看 quickbooks 返回的源 XML,我可以看到无效字符(出于隐私原因实际命名已更改,但我留下了有问题的字符):
<Contact>Ongél Davabond</Contact>
当我尝试解析 XML(使用 PHP XML 解析器,从 xml_parser_create() 开始)时,我收到一条无效字符消息。
我注意到 XML 标头只是:
<?xml version="1.0" ?>
我试着用 preg_replace
<?xml version="1.0" encoding="utf-8" ?>
但这没有任何区别。
鉴于我无法更改接收 XML 的方式,我该如何最好地处理它?有没有办法让 PHP XML 解析器接受这样的字符?PHP 是否有办法将任何无效字符转换为它们的 &#nnn; 等价物,而不影响 XML 结构,或者我是否需要逐个字符地检查整个 XML 字符以查找无效字符并手动替换它们?我不知道将来会出现什么其他无效字符,所以我正在寻求一种一次性处理所有可能性的方法,而不是仅仅修复这个“é”字符。