Кто-нибудь знает быстрый способ конвертировать SimpleXMLElement в обычный объект STDClass, без повторения каждой ветки вручную? Я бы чувствовал себя лучше, работая с обычным объектом после извлечения данных.
Быстро преобразовать simpleXMLObject в STDClass?
Ответ 1
Я предлагаю изучить использование XMLReader, который хорошо зарекомендовал себя для извлечения данных и хранения их как любого типа данных, а не SimpleXML. Это особенно полезно для регулярно используемых документов (я использую их, как RSSReader, для RSS), намного быстрее, чем можно было ожидать, а в качестве бонуса используется меньше памяти, чем SimpleXML.
Ответ 2
$my_std_class = json_decode(json_encode($my_simplexmlelement));
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true);
Ответ 3
Другой способ:
(object)(array)$my_simplexmlelement
К сожалению, если у вас есть дети, они остаются как SimpleXMLElement
Ответ 4
Я не знаю, есть ли способ конвертировать объект без итерации через него. Я предполагаю, что вы не можете.
Вы можете проверить этот поток, он показывает вам, как преобразовать SimpleXML в массив, вы можете адаптировать его.