Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Преобразование XML в массив или объект
Для преобразования XML в массив или объект можно использовать следующую функцию:
print_r(xml_decode('<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
<order_response>
<id>1043690</id>
<ticket>kYQGKxcj000001043690OCrjirAQCIpmPKfmpKzV</ticket>
<ok_code>wadlacURJa</ok_code>
<failure_code>flxrqhVvdm</failure_code>
<response_code>0</response_code>
<response_message>Успешное выполнение запроса</response_message>
</order_response>'));
function xml_decode($xml){
$dom = new DOMDocument('1.0', 'utf-8');
@$dom->loadXML($xml);
if(!$dom)die('Файл XML испорчен!');
$root=$dom->documentElement;
$nodelist=$root->childNodes; //список узлов 1-го уровня
$res=[];
foreach ($nodelist as $child) {
if ($child->nodeType==XML_ELEMENT_NODE){
$res[$child->nodeName]=$child->nodeValue;
foreach ($child->childNodes as $child2)
if ($child2->nodeType==XML_ELEMENT_NODE){
$res[$child2->nodeName]=$child2->nodeValue;
}
}
}
return (object)$res; // этот вариант вернет в виде объекта
//return $res; // этот вариант вернет в виде массива
}
.
Прокомментировать/Отблагодарить