если вы используете, то это Кодий под вами поймет я намереваюсь. это Кодий разрешило мою проблему.
[Кодий]
/**
* Тип генератора XMLToArray
* @author: MA Razzaque Rupom
,
* Модератор, phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL: LINK2 http://www.rupom.infoLINK2
* @version: 1.0
* @date 06/05/2006
* Цель: Создавать иерархический блок от данных по XML
* Выпущено: Под GPL
*
тип XmlToArray
{
var $xml= '';
/**
* Конструктор невыполнения обязательства
* @param $xml = данные по xml
* @return никакие
*
функция XmlToArray ($xml)
{
$this->xml = $xml;
}
/**
* _struct_to_array ($values, &$i)
*
* Это добавляет содержание возвращенного xml в блок для более легкий обрабатывать.
* Рекурсивно, статическо
*
* @access приватные
* блоком $values @param это будет данные по xml в блоке
* @param int $i это будет в настоящее время положение в блоке
* блок @return
*
функция _struct_to_array ($values, &$i)
{
$child = блок ();
если (isset, то ($values [$i] [«значение»])) array_push ($child, $values [$i] [«значение»]);
пока (переключатель <� count=""> $i++ ($values [$i] [«тип»]) {
случай «cdata»:
array_push ($child, $values [$i] [«значение»]);
пролом;
случай «завершает»:
$name = $values [$i] [«бирка»];
если (! опорожните ($name)){
$child [$name] = ($values [$i] [«значение»])? ($values [$i] [«значение»]): '';
если (isset, то ($values [$i] [«атрибуты»])) {
$child [$name] = $values [$i] [«атрибуты»];
}
}
пролом;
случай «раскрывает»:
$name = $values [$i] [«бирка»];
$size = isset ($child [$name])? sizeof ($child [$name]): 0;
$child [$name] [$size] = $this->_struct_to_array ($values, $i);
пролом;
случай «близкий»:
возвращенное $child;
пролом;
}
}
возвращенное $child;
} //_struct_to_array
/**
* createArray ($data)
*
* Это добавляет содержание возвращенного xml в блок для более легкий обрабатывать.
*
* @access общественные
* шнур $data @param это будет шнуром данных по xml
* блок @return
*
функция createArray ()
{
$xml = $this->xml;
$values = блок ();
$index = блок ();
$array = блок ();
$parser = xml_parser_create ();
xml_parser_set_option ($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parse_into_struct ($parser, $xml, $values, $index);
xml_parser_free ($parser);
$i = 0;
$name = $values [$i] [«бирка»];
$array [$name] = isset ($values [$i] [«атрибуты»])? $values [$i] [«атрибуты»]: '';
$array [$name] = $this->_struct_to_array ($values, $i);
возвращенное $array;
} //createArray
} //XmlToArray
? >
$xml_data = file_get_contents («XMLFormatPerformanceReport.xml»);
Пример //Creating типа
$xmlObj = новое XmlToArray ($xml_data);
Блок //Creating
$arrayData = $xmlObj->createArray ();
//Displaying блок
отголосок ««;
print_r ($arrayData);
? >
[/code]