繁体   English   中英

处理包含无效字符(PHP)的XML的最佳方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM