PHP生成的XML表示无效字符值27的消息(PHP generated XML shows inva

2019-06-17 23:02发布

我使用如下PHP库生成XML:

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

上述操作的方式产生一个网页,其中示出了在输出的顶部的消息。

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

我曾尝试用整洁库整顿..使用的iconv得到的UTF-8字符中国。

Answer 1:

一个有用的功能,摆脱错误的建议这个网站上。 http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8

当你把UTF-8编码字符串一个XML文档中你应该记住,不是所有的UTF-8字符的有效的XML文档在接受http://www.w3.org/TR/REC-xml/#charsets

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

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

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



Answer 2:

PRASHANT是绝对正确的。 您也可以剥去在Javascript无效字符做:

function utf8_for_xml(inputStr) {
  return inputStr.replace(/[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm, '');
}


文章来源: PHP generated XML shows invalid Char value 27 message