[英]What is the best way to deal with XML that contains invalid characters (PHP)?
我正在使用QBXML与Quickbooks集成。 我正在运行一个客户查询,并且Quickbooks返回的XML似乎包含无效字符(!)。
查看quickbooks返回的源XML,我可以看到无效字符(出于隐私原因,实际名称已更改,但我留在了该字符中):
<Contact>Ongél Davabond</Contact>
当我尝试解析XML时(使用PHP XML解析器,以xml_parser_create()开头),我收到了无效的字符消息。
我注意到XML标头只是:
<?xml version="1.0" ?>
我试着用preg_replacing
<?xml version="1.0" encoding="utf-8" ?>
但这没什么区别。
鉴于我无法更改接收XML的方式,我该如何最好地处理它? 有没有办法让PHP XML解析器接受这样的字符? PHP是否可以将任何无效字符转换为它们的&#nnn ;? 等价的内容,而又不影响XML结构,还是我需要逐字符遍历整个XML字符以查找无效字符并手动替换它们? 我不知道将来还会出现其他无效字符,因此我想尽办法一次性处理所有可能性,而不仅仅是解决这个“é”字符。
尽管我期望使用UTF-8,但返回的XML是ISO-8859-1。 强制使用ISO-8859-1编码即可解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.