我创建了一个Wordpress / WooCommerce插件,可以从我们的产品中创建XML文件。
但在某些行中有非法字符。
error on line 15622 at column 22: Input is not proper UTF-8, indicate encoding ! Bytes: 0x03 0xC3 0xB6 0x73
如何解决这个问题,以便正确解析XML?
生成代码如下:
$dom = new DOMDocument('1.0', 'UTF-8');
// create root element
$root = $dom->createElement("termeklista");
$dom->appendChild($root);
$dom->formatOutput=true;
然后填充数据的while循环。问题出在描述标签中。
// DESCRIPTION
$description = $dom->createElement("leiras");
$producta->appendChild($description);
// create CDATA section
$cdata = $dom->createCDATASection("\n".$loop->post->post_excerpt."\n");
$description->appendChild($cdata);
我已经尝试过iconv,utf8_encode,自定义函数来替换错误的字符,但我无法弄清楚是什么问题。
WooCommerce产品发布摘录中没有任何非法字符。
答案 0 :(得分:2)
0x03
(又名^C
又名ETX
又名传播结束) 不是allowed character in XML :
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
因此,您的数据不是XML,任何符合要求的XML处理器都必须报告错误,例如您收到的错误。
在将数据与任何XML库一起使用之前,必须手动或自动将其删除为 文本,而不是XML, ,从而修复数据。
答案 1 :(得分:0)