php simpleXMLElement для массива: нулевое значение
У меня есть следующий XML:
<account>
<id>123</id>
<email></email>
<status>ACTIVE</status>
</account>
Я хочу иметь его в качестве переменной массива. Поэтому я читаю это с$xml = simplexml_load_file()
, Самый простой способ преобразовать simpleXMLElement в ассоциативный массив, который я знаю, - это перемолоть его:json_decode(json_encode((array) $xml),1);
Проблема в том, что я не хочу получатьemail
ключ как пустой массив, а скорее какNULL
стоимость. Как SimpleXMLElement, это выглядит так:
public 'email' =>
object(SimpleXMLElement)[205]
тогда как в массиве это выглядит так:
'email' =>
array (size=0)
empty
Я хотел бы получить:
'email' => NULL
Единственный способ добиться этого, о котором я думал, - это перебрать все элементы и заменить пустой массив нулевым значением. Проблема в том, что мой XML намного больше (выше, просто для объяснения проблемы), и мне пришлось бы перебирать много элементов XML (и это будет ручная работа - я ищу что-то автоматическое). Может быть, мне не хватает некоторых опций в одной из функций ... или, может быть, есть другой трюк для этого?