/** * Format object|array to valid XML. * * @param object|array|int|string|bool|float|null $data * @return string */ public function render($data) { $formattedData = $this->_formatData($data, true); /** Wrap response in a single node. */ $formattedData = array(self::XML_ROOT_NODE => $formattedData); $this->_xmlGenerator->setIndexedArrayItemName(self::DEFAULT_ENTITY_ITEM_NAME)->arrayToXml($formattedData); return $this->_xmlGenerator->getDom()->saveXML(); }
/** * @param UiComponentInterface $view * @return string */ protected function getDataXml(UiComponentInterface $view) { $result = ['configuration' => $view->getRenderContext()->getStorage()->getComponentsData($view->getName())->getData(), 'data' => []]; foreach ($view->getRenderContext()->getStorage()->getData($view->getName()) as $key => $value) { if (is_object($value)) { if (method_exists($value, 'toXml')) { $result['data'][$key] = $value->toXml(); } else { $result['data'][$key] = $this->objectToXml($value); } } else { $result['data'][$key] = $value; } } return $this->generator->arrayToXml($result); }