AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Преобразование 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=array();
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; // этот вариант вернет в виде массива
}

.

© Copyright 2008-2016 by KDG