menu_config.xml
- <?xml version="1.0" encoding="utf-8"?>
- <menu_config>
- <menu title="文章管理" url="~/Article" target="" allow="">
- <submenu title="列表" url="~/Article/list" allow="" />
- <submenu />
- <submenu title="新增" url="~/Article/add" allow="" />
- </menu>
- <menu />
- <menu title="帳號管理" url="~/Admin" />
- </menu_config>
<?xml version="1.0" encoding="utf-8"?>
<menu_config>
<menu title="文章管理" url="~/Article" target="" allow="">
<submenu title="列表" url="~/Article/list" allow="" />
<submenu />
<submenu title="新增" url="~/Article/add" allow="" />
</menu>
<menu />
<menu title="帳號管理" url="~/Admin" />
</menu_config>
-
-
-
-
-
-
- public class MenuDataModel
- {
-
- public string Title { get; set; }
- public string Url { get; set; }
- public string Target { get; set; }
- public string Allow { get; set; }
- public string Icon { get; set; }
- public List<MenuDataModel> Submenu { get; set; }
-
-
- public static List<MenuDataModel> GetList(string menuConfigPath)
- {
-
- var xmlContent = File.ReadAllText(menuConfigPath, Encoding.UTF8);
- var menuDocument = XDocument.Parse(xmlContent);
-
-
- return menuDocument.Root.Elements("menu")
- .Select(menu => new MenuDataModel
- {
-
- Title = (string) menu.Attribute("title"),
- Url = (string) menu.Attribute("url"),
- Target = (string) menu.Attribute("target"),
- Icon = (string) menu.Attribute("icon") ?? "Item",
- Allow = (string) menu.Attribute("allow"),
-
-
- Submenu = menu.Elements("submenu")
- .Select(sub => new MenuDataModel
- {
- Title = (string) sub.Attribute("title"),
- Url = (string) sub.Attribute("url"),
- Target = (string) sub.Attribute("target"),
- Icon = (string) sub.Attribute("icon") ?? "Item",
- Allow = (string) sub.Attribute("allow"),
- }).ToList(),
- }).ToList();
- }
- }
-
-
- void Main()
- {
- var path = @"D:\menu_config.xml";
-
- List<MenuDataModel> list = MenuDataModel.GetList(path);
-
- list.Dump();
- }
//using System.Collections.Generic;
//using System.IO;
//using System.Linq;
//using System.Xml.Linq;
//using System.Text;
public class MenuDataModel
{
/*POCO 資料欄位*/
public string Title { get; set; }
public string Url { get; set; }
public string Target { get; set; }
public string Allow { get; set; }
public string Icon { get; set; }
public List<MenuDataModel> Submenu { get; set; }
/*取得資料清單*/
public static List<MenuDataModel> GetList(string menuConfigPath)
{
/*讀取 XML 檔案*/
var xmlContent = File.ReadAllText(menuConfigPath, Encoding.UTF8);
var menuDocument = XDocument.Parse(xmlContent);
/*利用 LINQ 轉成 POCO*/
return menuDocument.Root.Elements("menu")
.Select(menu => new MenuDataModel
{
/*取得 Element 上的 Attribute*/
Title = (string) menu.Attribute("title"),
Url = (string) menu.Attribute("url"),
Target = (string) menu.Attribute("target"),
Icon = (string) menu.Attribute("icon") ?? "Item",
Allow = (string) menu.Attribute("allow"),
/*取得子層級 Element 上的 Attribute*/
Submenu = menu.Elements("submenu")
.Select(sub => new MenuDataModel
{
Title = (string) sub.Attribute("title"),
Url = (string) sub.Attribute("url"),
Target = (string) sub.Attribute("target"),
Icon = (string) sub.Attribute("icon") ?? "Item",
Allow = (string) sub.Attribute("allow"),
}).ToList(),
}).ToList();
}
}
void Main()
{
var path = @"D:\menu_config.xml";
List<MenuDataModel> list = MenuDataModel.GetList(path);
list.Dump();
}
0 回應:
張貼留言