diff --git a/cake/libs/controller/components/request_handler.php b/cake/libs/controller/components/request_handler.php index 2a9e42ac5b9..50e7ffc9dc8 100644 --- a/cake/libs/controller/components/request_handler.php +++ b/cake/libs/controller/components/request_handler.php @@ -240,15 +240,15 @@ public function startup(&$controller) { } if ($this->requestedWith('xml')) { - if (!class_exists('XmlNode')) { + if (!class_exists('Xml')) { App::import('Core', 'Xml'); } - $xml = new Xml(trim(file_get_contents('php://input'))); + $xml = Xml::build(trim(file_get_contents('php://input'))); - if (count($xml->children) == 1 && is_object($dataNode = $xml->child('data'))) { - $controller->data = $dataNode->toArray(); + if (isset($xml->data)) { + $controller->data = Xml::toArray($xml->data); } else { - $controller->data = $xml->toArray(); + $controller->data = Xml::toArray($xml); } } }