private function serializeElem(DOMDocument $doc_xml, DOMElement $parent_xml, $id, MenuElem $menu_elem) { $menu_elem_xml = $doc_xml->createElement('menu-elem'); $menu_elem_xml->setAttribute('id', $id); $label_xml = $doc_xml->createElement('label', $menu_elem->getLabel()); $url_xml = $doc_xml->createElement('url', $menu_elem->getUrl()); $menu_elem_xml->appendChild($label_xml); $menu_elem_xml->appendChild($url_xml); $menu_children = $menu_elem->getChildren(); if ($menu_children) { $submenu_xml = $doc_xml->createElement('submenu'); $menu_elem_xml->appendChild($submenu_xml); foreach ($menu_children as $child_id => $child_elem) { $this->serializeElem($doc_xml, $submenu_xml, $child_id, $child_elem); } } $parent_xml->appendChild($menu_elem_xml); }