xml节点foreach循环
Posted
技术标签:
【中文标题】xml节点foreach循环【英文标题】:Xml node foreach loop 【发布时间】:2016-06-14 12:34:58 【问题描述】:我目前正在尝试读取一个 xml 文件并为每个“Mods”条目添加一个控件。
<Modlist>
<Mods>
<Mod>Test1</Mod>
<Version>1.0</Version>
</Mods>
<Mods>
<Mod>Test2</Mod>
<Version>2.0</Version>
</Mods>
<Mods>
<Mod>Test3</Mod>
<Version>3.0</Version>
</Mods>
</Modlist>
基本上我想为 xml 中列出的每个模块添加一个控件到面板。
XDocument Mods = XDocument.Load(@"C:\dataset.xml");
foreach (var mod in Mods.Descendants("Mods"))
Button modbutton = new Button();
modbutton.Text = mod.Element("Mod").Value;
panel1.Controls.Add(modbutton);
它的工作,但它只创建一个按钮,似乎停止。 在我的示例中,它应该创建 3 个按钮。 我必须改变什么?我的代码有什么问题?
【问题讨论】:
【参考方案1】:您读取 xml 的代码是正确的,但是您将每个按钮一个放在另一个上。为每个Button
设置.Location
属性。
【讨论】:
如果你不休息就会发生这种情况,上帝我恨我自己.. :D 谢谢,这就是问题所在。【参考方案2】:您的代码运行良好,但问题是按钮放置在同一个位置。你需要改变位置。
试试这个
XDocument Mods = XDocument.Load(@"C:\dataset.xml");
int I = 10;
foreach (var mod in Mods.Descendants("Mods"))
Button modbutton = new Button() Top = 10 + I, Left = 10 ;
modbutton.Text = mod.Element("Mod").Value;
panel1.Controls.Add(modbutton);
I += 50;
【讨论】:
以上是关于xml节点foreach循环的主要内容,如果未能解决你的问题,请参考以下文章
XSLT1,Muenchian 分组,在 foreach 循环中列出分组节点