What are some common issues with using the DOM class in PHP for converting nested sets menus to HTML code?

One common issue with using the DOM class in PHP for converting nested sets menus to HTML code is that it can be complex and error-prone to manually traverse the nested sets structure and create the corresponding HTML elements. To solve this, you can use a recursive function to traverse the nested sets and build the HTML code dynamically.

function buildMenu($menuItems) {
    $dom = new DOMDocument();
    
    $ul = $dom->createElement('ul');
    
    foreach($menuItems as $menuItem) {
        $li = $dom->createElement('li', $menuItem['name']);
        
        if(!empty($menuItem['children'])) {
            $li->appendChild(buildMenu($menuItem['children']));
        }
        
        $ul->appendChild($li);
    }
    
    return $ul;
}

$menuItems = [
    ['name' => 'Home'],
    ['name' => 'About', 'children' => [
        ['name' => 'Team'],
        ['name' => 'History']
    ]],
    ['name' => 'Services'],
    ['name' => 'Contact']
];

$menu = buildMenu($menuItems);
echo $dom->saveHTML($menu);