XDocument
を使用してxmlを読み込む際のヘルプが必要です。 xmlはWPFのHierarchicalDataTemplate
のデータを保持しているため、各要素は同じ属性を持ちます。XDocumentを使用して重複するXML属性を読み込む
重複する属性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
の負荷のために組み合わせますか?どんな助けも素晴らしいだろう。
私は ''
私はあなたが何を意味するのか、ルートはメニューです、次の要素は属性を持つメニューです、次に属性を持つitemlist(オプション)、属性を持つ次のアイテム(属性もあります)上記のxmlでは、メニューid = 1はitemlistメニューid = 2は2つのitemlistを持っていますが、2番目のonだけがitemを持っています。項目リストには属性と項目のみが含まれます。 –