Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Преобразование XML в массив

Для преобразования XML в массив можно использовать следующую функцию:


<?php
function xml_to_array($XML)
{
$XML trim($XML);
$returnVal $XML;

// Expand empty tags
$emptyTag '<(.*)/>';
$fullTag '<\\1></\\1>';
$XML preg_replace ("|$emptyTag|"$fullTag$XML);

$matches = array();
if (
preg_match_all('|<(.*)>(.*)</\\1>|Ums'trim($XML), $matches))
{
    
// Если есть элементы, тогда вернуть массив, иначе текст
    
if (count($matches[1]) > 0$returnVal = array();
    foreach (
$matches[1] as $index => $outerXML)
    {
        
$attribute $outerXML;
        
$value xml_to_array($matches[2][$index]);
        if (! isset(
$returnVal[$attribute])) $returnVal[$attribute] = array();
            
$returnVal[$attribute][] = $value;
    }
}
// Bring un-indexed singular arrays to a non-array value.
if (is_array($returnVal)) foreach ($returnVal as $key => $value)
{
    if (
is_array($value) && count($value) == && key($value) === 0)
    {
        
$returnVal[$key] = $returnVal[$key][0];
    }
}
return 
$returnVal;
}
?>
Скопировать в буфер

© Copyright 2008-2012 by KDG