XML Feed中的非法字符?

时间:2016-05-26 00:35:17

标签: php xml wordpress character-encoding woocommerce

我创建了一个Wordpress / WooCommerce插件,可以从我们的产品中创建XML文件。

但在某些行中有非法字符。

error on line 15622 at column 22: Input is not proper UTF-8, indicate encoding !
Bytes: 0x03 0xC3 0xB6 0x73

如何解决这个问题,以便正确解析XML?

XML FEED FILE

生成代码如下:

$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产品发布摘录中没有任何非法字符。

2 个答案:

答案 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)

所以,

我能够在这个问题中解决带有stripInvalidXML()函数的问题。感谢autor。 XML现在有效。

stripInvalidXML from file

相关问题