Array2xml
08 May 2006 oleh paydjoBeberapa waktu lalu Bojes sempat nanya, gimana parsing array menjadi xml. Gugling bentar nemu caranya. Gw lupa dari mana (males gugling lagi), tapi suwer ini hasil gugling dimodif dikit.
<?php
function array_to_xml($array, $root, $level=1) {
$xml = '';
if ($level==1) {
$xml .= ''.
\"\n<\".$root.\">\n\";
}
foreach ($array as $key=>$value) {
$key = strtolower($key);
if (is_array($value)) {
$multi_tags = false;
foreach($value as $key2=>$value2) {
if (is_array($value2)) {
$xml .= str_repeat(\"\t\",$level).\"<$key>\n\";
$xml .= array_to_xml($value2, $root, $level+1);
$xml .= str_repeat(\"\t\",$level).\"$key>\n\";
$multi_tags = true;
} else {
if (trim($value2)!='') {
if (htmlspecialchars($value2)!=$value2) {
$xml .= str_repeat(\"\t\",$level).
\"<$key>\n\";
} else {
$xml .= str_repeat(\"\t\",$level).
\"<$key>$value2$key>\n\";
}
}
$multi_tags = true;
}
}
if (!$multi_tags and count($value)>0) {
$xml .= str_repeat(\"\t\",$level).\"<$key>\n\";
$xml .= array_to_xml($value, $root, $level+1);
$xml .= str_repeat(\"\t\",$level).\"$key>\n\";
}
} else {
if (trim($value)!='') {
if (htmlspecialchars($value)!=$value) {
$xml .= str_repeat(\"\t\",$level).\"<$key>\".
\"\n\";
} else {
$xml .= str_repeat(\"\t\",$level).
\"<$key>$value$key>\n\";
}
}
}
}
if ($level==1) {
$xml .= \"\".$root.\">\n\";
}
return $xml;
}
?>
Cara makenya tinggal panggil kok ![]()
jika pengin browser langsung mengenali sebagai file xml, kirim aja header.
<?php
include \"array2xml.php\";
$data = array('file'=>array('myfile',
'yourfile'),
'user'=>array(array('name'=>'Foo', 'test' =>'asdf'),
array('bar'=>'Bar')),
'time'=>array('day'=>'tuesday',
'week'=>23));
header('Content-type: text/xml');
echo array_to_xml($data, 'data');
?>
Popularity: 4% [?]
Artikel terkait:- No related posts


