@iitovka

Как использовать simplexml_load_file и serialize в одном скрипте?

Делаю обработку: чтение xml файлика и запись данных куда надо.
вот сверху читаю файл так:
$xml = simplexml_load_file("test.xml");
foreach($xml->Товары as $items)
{
	foreach($items->Скидка as $item)
	{
		foreach($item->Условие as $rules)
		{	
			foreach($rules->Параметр as $rule)
			{	
				$xmlids[]= $rule;
			}	
		}
	}
}


прочитала файл, собрала массив нужных мне данных ($xmlids) - тут все ок.
потом ниже в коде используется функция serialize - нужна для записи в БД.
но в итоге выдает ошибку:
[Exception]
Serialization of 'SimpleXMLElement' is not allowed (0)
/var/www/ ... /index.php:33
#0: serialize(array)
/var/www/ ... /index.php:33

Как обойти это?
  • Вопрос задан
  • 186 просмотров
Решения вопроса 2
@Snewer
Замените
$xmlids[]= $rule;

На
$xmlids[]= (string) $rule;
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
$xmlids[]= $rule;

Вот здесь $rule - всё ещё объект типа simplexmlelement. А его сериализовать не получится.

Если в самом xml на этом месте расположен скаляр - то приведите его к скаляру явным образом.
$xmlids[]= (int) $rule;
// или, смотря что у вас там
$xmlids[]= (string) $rule;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы