php - wp all import woocommerce




Недопустимый символ в XML-фиде? (2)

0x03 (aka ^C a a ETX aka конец передачи ) не является допустимым символом в XML :

[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

Поэтому ваши данные не являются XML, и любой соответствующий XML-процессор должен сообщать об ошибке, например, полученной вами.

Вы должны восстановить данные, удалив любые незаконные символы, рассматривая их как текст, а не XML, вручную или автоматически, прежде чем использовать его с любыми библиотеками XML.

Я создал плагин 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 нет никаких незаконных символов.


Так,

В этом вопросе я смог решить проблему с помощью функции stripInvalidXML (). Спасибо за автора. XML теперь действителен.

stripInvalidXML из файла





woocommerce