PHP生成的XML显示无效的Char值27消息 [英] PHP generated XML shows invalid Char value 27 message

查看:678
本文介绍了PHP生成的XML显示无效的Char值27消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用PHP库生成XML如下:

I am generating XML using PHP library as below:

$dom = new DOMDocument("1.0","utf-8");

执行以上操作会在输出的顶部显示一条消息。

Doing above results in a page which shows a message on top of the output.

此页面包含以下错误:
错误在第16行在列274505:PCDATA无效的字符值27
下面是一个页面的渲染,第一个错误。

我已经尝试使用Tidy库纠正。使用iconv获取UTF-8中的中文字符。

I have tried rectifying using Tidy library.. used iconv to get the chinese character in UTF-8.

推荐答案


在本网站建议一个有用的功能来摆脱这个错误。
http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf8

当你将utf-8编码的字符串放在一个XML文档中时,你应该记住,并非所有utf-8有效字符都是已在XML文档中接受 http://www.w3.org/TR/REC-xml/#charsets

When you put utf-8 encoded strings in a XML document you should remember that not all utf-8 valid chars are accepted in a XML document http://www.w3.org/TR/REC-xml/#charsets

所以你应该去掉不需要的字符,否则你会有一个XML致命的解析错误,如上面

So you should strip away the unwanted chars, else you’ll have an XML fatal parsing error such as above

function utf8_for_xml($string)
{
    return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string);
}

希望节省别人一些时间..

Hope that saves someone else some time..

这篇关于PHP生成的XML显示无效的Char值27消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆