Custom HTML output for registered navigation

The wp_get_nav_menu_items() function returns an indexed array of WP_Post objects.

Here is an example:

$menu_name="custom_menu_slug";
$menu_locations = get_nav_menu_locations()
$menu = wp_get_nav_menu_object( $menu_locations[ $menu_name ] );

$menu_items = wp_get_nav_menu_items( $menu->term_id );

$menu_list="<ul id="menu-" . $menu_name . '">';

foreach ( (array) $menu_items as $key => $menu_item ) {
    $menu_list .= '<li><a href="' . $menu_item->url . '">' . $menu_item->title . '</a></li>';
}

$menu_list .= '</ul>';    

Source: http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items