Project
Мне необходим скрипт выборочного извлечения данных из xml.
Многое из фришного в инете тащит из xml все данные подряд, от начала и до конца, но это не то что мне надо. Пытался сам переделать фришные скрипты, но понял что лучше обратиться к профи.
Отблагодарю финансово (в разумных пределах конечно же...
)
Обращайтесь в аську или в ПМ пожалуйста.
ibiz
возможно поможет функция:
function GetXMLTree($data) {
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$items = array();
$level = 0;
$parents = array();
$items[0] = '';
$parents[] = &$items[0];
foreach ($vals as $xml_elem)
{
if ($xml_elem['type'] == 'open')
{
if($level>0 && array_key_exists('children',$parents[$level-1]))
{
$SubLevel = count($parents[$level-1]['children']);
}
else
{
$SubLevel = 0;
}
$cChild = 0;
$parents[$level] = &$parents[$level-1]['children'][$SubLevel];
$parents[$level]['name'] = strtolower($xml_elem['tag']);
$parents[$level]['type'] = 'complete';
$parents[$level]['value'] = 'value';
$level++;
if(array_key_exists('attributes',$xml_elem))
{
$parents[$level-1]['attributes'] = $xml_elem['attributes'];
}
}
if($xml_elem['type'] == 'complete')
{
$parents[$level-1]['children'][$cChild]['name'] = strtolower($xml_elem['tag']);
$parents[$level-1]['children'][$cChild]['type'] = 'complete';
$parents[$level-1]['children'][$cChild]['value'] = $xml_elem['value'];
if(array_key_exists('attributes',$xml_elem))
{
$parents[$level-1]['children'][$cChild]['attributes'] = $xml_elem['attributes'];
}
$cChild++;
}
if($xml_elem['type'] == 'close')
{
$level--;
}
}
return $parents[0];
}