/** * Recurses value and serializes it as an XML string * @param variant $var object, array or value to convert * @param string $root name of the root node (optional) * @return string XML */ static function ToXML($var, $root = "") { $xml = ""; if (is_object($var)) { // object have properties that we recurse $name = strlen($root) > 0 && is_numeric($root) == false ? $root : get_class($var); $xml .= "<" . $name . ">\n"; $props = get_object_vars($var); foreach (array_keys($props) as $key) { $xml .= VerySimpleXmlUtil::ToXML($props[$key], $key); } $xml .= "</" . $name . ">\n"; } elseif (is_array($var)) { $name = strlen($root) > 0 ? is_numeric($root) ? "Array_" . $root : $root : "Array"; $xml .= "<" . $name . ">\n"; foreach (array_keys($var) as $key) { $xml .= VerySimpleXmlUtil::ToXML($var[$key], $key); } $xml .= "</" . $name . ">\n"; } else { $name = strlen($root) > 0 ? is_numeric($root) ? "Value_" . $root : $root : "Value"; $xml .= "<" . $name . ">" . VerySimpleXmlUtil::Escape($var) . "</" . $name . ">\n"; } return $xml; }