It’s not perfect, but it can handle basic use.
Demo: http://test.empiresoft.net.cn:4/Test/MenuDemo/index.html (If it cannot be accessed, it may be that your DNS server does not support alias resolution)
Usage:
var menu = new Rimifon.Web.Menu();
menu.DataSource = "menu.xml";
menu.DataBind(document.body); //Bind the menu to document.body.
xml data format: