я пытался читать вложенный XML с помощью xmlnode, но у меня возникла одна проблема
вот мой xml-файл
<role name="admin">
<menu name="Setting">
<group name="settinggrup1"></group>
<group name="settinggrup2"></group>
<group name="settinggrup3"></group>
</menu>
<menu name="Service">
<group name="servicegrup1"></group>
<group name="servicegrup2"></group>
<group name="servicegrup3"></group>
</menu>
<menu name="Search">
<group name="serchgrup1"></group>
<group name="serchgrup2"></group>
<group name="serchgrup3"></group>
</menu>
</role>
и вот мой код
var xmlDoc = new XmlDocument();
xmlDoc.Load(file);
XmlNodeList nodeList = xmlDoc.SelectNodes("//role[@name='" + "admin" + "']/menu");
var menus = new List<Menu>();
var groupName = new List<Group>();
Menu menu = new Menu();
foreach (XmlNode menuNode in nodeList)
{
menu.name = menuNode.Attributes["name"].Value;
foreach (XmlNode childNode in menuNode)
{
groupName.Add(new Group() { name = childNode.Attributes["name"].Value });
}
menus.Add(new Menu { name = menu.name, group = groupName });
}
вот мой класс
public class Menu
{
public string name { get; set; }
public List<Group> group { get; set; }
}
public class Group
{
public string name { set; get; }
}
И тем самым я намеревался отобразить как
- Настройка: группа настроек1, группа настроек2, группа настроек3.
- Служба: сервисная группа1, сервисная группа2, сервисная группа3
- Поиск : searchgrup1, searchgrup2, searchgrup3
Но то, что я получил, это
- Параметр: settingsgrup1, settingsgrup2, settingsgrup3, servicegrup1, servicegrup2, servicegrup3, searchgrup1, searchgrup2, searchgrup3
- Служба: группа настроек1, группа настроек2, группа настроек3, группа обслуживания1, группа обслуживания2, группа обслуживания3, группа поиска1, группа поиска2, группа поиска3
- Поиск: группа настроек1, группа настроек2, группа настроек3, группа обслуживания1, группа обслуживания2, группа обслуживания3, группа поиска1, группа поиска2, группа поиска3
Что-то не так в моей части кода, я думаю, в части, когда я добавил список в свой вложенный foreach, но я пытался часами и до сих пор не могу это исправить. кто-нибудь может помочь мне, пожалуйста, а также, пожалуйста, объясните, что мой код сделал неправильно.