/** * Serialise an array. * * @param array $data The data to serialize * @param int $n Used for recursion * * @return string */ function data_views_array_to_xml(array $data, $n = 0) { $output = ""; if ($n == 0) { $output = "<array>\n"; } foreach ($data as $key => $value) { $item = "array_item"; if (is_numeric($key)) { $output .= "<{$item} name=\"{$key}\" type=\"" . gettype($value) . "\">"; } else { $item = $key; $output .= "<{$item} type=\"" . gettype($value) . "\">"; } if (is_object($value)) { $output .= data_views_object_to_xml($value, "", $n + 1); } else { if (is_array($value)) { $output .= data_views_array_to_xml($value, $n + 1); } else { if (gettype($value) == "boolean") { $output .= $value ? "true" : "false"; } else { $output .= htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8'); } } } $output .= "</{$item}>\n"; } if ($n == 0) { $output .= "</array>\n"; } return $output; }
<?php /** * Elgg XML output * This outputs the api as XML * * @package Elgg * @subpackage Core * */ $result = $vars['result']; $export = $result->export(); echo data_views_object_to_xml($export, "elgg");