You are here: Re: [PHP] Array - partical path to the array's path (part 2) « PHP « IT news, forums, messages
Re: [PHP] Array - partical path to the array's path (part 2)

Posted by "Scott Fletcher" on 10/01/05 00:32

Got it figured out by now. I noticed one small bug but I'll fix it monday
morning, so i'm going to post what I did to make this work..

I'm going to donate this code to the guy at
http://www.devdump.com/phpxml.php and hopefully he'll put some of this to a
good use as more and more people are now using xml to exchange data, so this
would be very helpful to people who may need this...

[code]
$array = array
(
'NEWSFEED' => array
(
'0' => array
(
'ATTRIBUTES' => array
(
'ID' => 'test1'
),
'MESSAGE' => array
(
'0' => array
(
'ATTRIBUTES' => array
(
'ID' => 'test2',
'TID' => 'test4'
),
'TITLE' => array
(
'0' => array
(
'VALUE' => 'Title #1'
),
'1' => array
(
'VALUE' => 'Title #2'
)
),
'QUOTE' => array
(
'0' => array ( 'VALUE' => 'Quote #1' )
),
'BODY' => array
(
'0' => array ( 'VALUE' => 'Body #1' )
),
'REFERENCE' => array
(
'0' => array ( 'VALUE' => 'Reference #1' )
)
),
'1' => array
(
'TITLE' => array
(
'0' => array ( 'VALUE' => 'Title #2' )
),
'BODY' => array
(
'0' => array ( 'VALUE' => 'Body #2' )
),
'REFERENCE' => array
(
'0' => array ( 'VALUE' => '' )
)
),
'2' => array
(
'ATTRIBUTES' => array
(
'ID' => 'test3'
),
'TITLE' => array
(
'0' => array ( 'VALUE' => 'Title #3' )
),
'BODY' => array
(
'0' => array ( 'VALUE' => 'Body #3' )
),
'IMAGE' => array
(
'0' => array ( 'VALUE' => 'Image #3' )
),
'REFERENCE' => array
(
'0' => array ( 'VALUE' => 'Reference #3' )
)
)
)
)
),
'BLOG' => array
(
'0' => array
(
'MESSAGE' => array
(
'0' => array ( 'VALUE' => 'Title #1' )
)
)
)
);

function XmlTreeImplode($tree, $branch_level, &$array_key, &$xml_string)
{
$branch_level++;

$tab_spacer = " "; //Options to use white spaces or html spaces,
etc...

foreach($tree as $key => $value)
{
if (strtoupper($key) != "ATTRIBUTES") {
$array_key[count($array_key)] = $key;
}

if ($branch_level % 2 != 0) { //xml tag's name...
if (strtoupper($key) != "ATTRIBUTES") {
if(!(is_array($value))) { //Check for VALUE or CDATA name
tag...
$xml_string .= str_repeat($tab_spacer,
($branch_level-1))."<".$key.">".$value."</".$key.">"."\r";
} else { //Continue...
//=================================
//Grab the attribute data if any...
//=================================
if (is_array($value['0']['ATTRIBUTES'])) {
foreach($value['0']['ATTRIBUTES'] as $key1 => $value1) {
$attribute .= " ".$key1."=\"".$value1."\"";
}
}
//=================================

//Otherwise
$xml_string .= str_repeat($tab_spacer,
($branch_level-1))."<".$key.$attribute.">"."\r";
XmlTreeImplode($value, $branch_level, $array_key,
$xml_string);
$xml_string .= str_repeat($tab_spacer,
($branch_level-1))."</".$key.">"."\r";
}
}
} else { //xml name-tag counter...
if ($key != 0) {
//=================================
//Grab the attribute data if any...
//=================================
if (is_array($value['ATTRIBUTES'])) {
foreach($value['ATTRIBUTES'] as $key1 => $value1) {
$attribute .= " ".$key1."=\"".$value1."\"";
}
}
//=================================

$xml_string .= str_repeat($tab_spacer,
($branch_level-1))."</".$array_key[$branch_level-2].">"."\r";
$xml_string .= str_repeat($tab_spacer,
($branch_level-1))."<".$array_key[$branch_level-2].$attribute.">"."\r";
}

XmlTreeImplode($value, $branch_level, $array_key, $xml_string);
}
}
}

$xml_string = GetXmlStr($array);
[/code]

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация