Мне нужна помощь при загрузке XML с использованием XDocument
. Xml содержит данные для HierarchicalDataTemplate
в WPF, поэтому каждый элемент имеет одинаковые атрибуты.
У меня возникла проблема новичка с обработкой дублирующихся атрибутов Name, image и fileLoc.
Я пытался заставить работать что-то вроде приведенного ниже кода, но, как вы видите, дублирующиеся атрибуты работать не будут.
public static List<MenuItem> Load(string MyMenuFile)
{
var mymenu = XDocument.Load(MyMenuFile).Root.Elements("Menu").Select(
x => new MenuItem(
(string)x.Attribute("id"),
(string)x.Attribute("name"),
(string)x.Attribute("image"),
(string)x.Attribute("fileLoc"),
(string)x.Element("itemlist"),
(string)x.Attribute("name"),
(string)x.Attribute("image"),
(string)x.Attribute("fileLoc"),
(string)x.Element("item"),
(string)x.Attribute("name"),
(string)x.Attribute("image"),
(string)x.Attribute("fileLoc")));
return stationfiles.ToList();
}
Вот XML:
<Menus>
<Menu id="1" Name="Level1" image="C:\lvl1.jpg" fileLoc="C:\lvl1.xml">
</Menu>
<Menu id="2" Name="Level2" image="C:\lvl2.jpg" >
<itemlist Name="Level2" image="C:\lvl2.jpg" fileLoc="C:\lvl2.xml">
</itemlist>
<itemlist Name="Level3" image="C:\lvl3.jpg">
<item Name="First" image="C:\first.jpg" fileLoc="C:\first.xml"></item>
<item Name="Second" image="C:\second.jpg" fileLoc="C:\second.xml"></item>
<item Name="Third" image="C:\third.jpg" fileLoc="C:\third.xml"></item>
</itemlist>
</Menu>
</Menus>
Как видите, разные элементы, но дубликаты атрибутов. Должен ли я иметь 3 отдельных класса, но как бы я объединил их для нагрузки XDocument
? Любая помощь будет великолепна.