From 93daa9e247e9c423a6d4bb10af1106fdde37b800 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 1 Aug 2012 19:48:51 +0200 Subject: [PATCH] API: Complete respond function --- lib/api.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/api.php b/lib/api.php index 454a6fd26d..6ee570d60e 100644 --- a/lib/api.php +++ b/lib/api.php @@ -115,13 +115,32 @@ class OC_API { */ private static function respond($response, $format='json'){ if ($format == 'json') { - echo json_encode($response); - //} else if ($format == 'xml') { - // TODO array to xml + OC_JSON::encodedPrint($response); + } else if ($format == 'xml') { + header('Content-type: text/xml; charset=UTF-8'); + $writer = new XMLWriter(); + $writer->openMemory(); + $writer->setIndent( true ); + $writer->startDocument(); + self::toXML($response, $writer); + $writer->endDocument(); + echo $writer->outputMemory(true); } else { var_dump($format, $response); } } + + private static function toXML($array, $writer){ + foreach($array as $k => $v) { + if (is_array($v)) { + $writer->startElement($k); + self::toXML($v, $writer); + $writer->endElement(); + } else { + $writer->writeElement($k, $v); + } + } + } /** * check if the user is authenticated