将XML属性加载到c#winform

将XML属性加载到c#winform,c#,C#,我有一个xml文件,其结构如下: <MACHINE> <CONTROL NAME="" LABEL="TEST1" LABEL1="TEST1"/> <CONTROL NAME="" LABEL="TEST2" LABEL1="TEST2"/> <CONTROL NAME="" LABEL="TEST3" LABEL1="TEST3"/> </MACHINE> XmlDocument xdoc = new XmlDocument

我有一个xml文件,其结构如下:

<MACHINE>
 <CONTROL NAME="" LABEL="TEST1" LABEL1="TEST1"/>
 <CONTROL NAME="" LABEL="TEST2" LABEL1="TEST2"/>
 <CONTROL NAME="" LABEL="TEST3" LABEL1="TEST3"/>
</MACHINE>
XmlDocument xdoc = new XmlDocument();
xdoc.Load(@"C:projects.xml");
XmlNodeList list = xdoc.SelectNodes("//MACHINE");
但我不知道如何进一步

我添加了这个代码来生成一些文本框

var n = 5;
for (int i = 0; i < n; i++)
{
    for (int i = 0; i < n; i++)
        {
            //Create label

            Label label = new Label();
            label.Text = String.Format("Label {0}", i);
            //Position label on screen
            label.Left = 10;
            label.Top = (i + 1) * 20;
            //Create textbox
            TextBox textBox = new TextBox();
            //Position textbox on screen
            textBox.Left = 120;
            textBox.Top = (i + 1) * 20;
            //Add controls to form
            label.Name = list[i].Attributes["LABEL"].Value;
            textBox.Name = list[i].Attributes["LABEL1"].Value;
            this.Controls.Add(label);
            this.Controls.Add(textBox);
}
var n=5;
对于(int i=0;i

我如何修改它,使其接受XML文件中的maby值,而不是5个?

您的XML应该有适当的结束元素,如

<CONTROL NAME="" LABEL="TEST1" LABEL1="TEST1"></CONTROL>
进入

然后设置

var n = list.Count;
在中设置标签和文本框名称

label.Name = list[i].Attributes["LABEL"].Value;
textBox.Name = list[i].Attributes["LABEL1"].Value;

我建议您尝试:


非常感谢邹的回复,嗯,我更新了,可以吗?我无法执行it@AniAni,您是否检查了xml字符串结束元素?
语法在您更新的问题中似乎重复。然后将
//机器
更改为
//控件
,并设置
var n=list.Count;
是的,谢谢尽管如此,我还是得到了不同的标签名称,如标签1、标签2等,但它计算了行数。请回答一个问题,我如何用标签1填充文本框?@AniAni,
textBox.text=list[i]。Attributes[“LABEL1”].Value;
XmlNodeList list = xdoc.SelectNodes("//CONTROL");
var n = list.Count;
label.Name = list[i].Attributes["LABEL"].Value;
textBox.Name = list[i].Attributes["LABEL1"].Value;
var root = XElement.Load(@"c:\projects.xml");
var controlElements = root.Descendants("CONTROL");

int labelCounter = 1;
foreach (var element in controlElements)
{
    var labelId = (string) element.Attribute("LABEL");
    var textBoxName = (string) element.Attribute("LABEL1");

    Label label = new Label();
    label.Text = string.Format("Label {0}", labelCounter);

    label.Left = 10;
    label.Top = (labelCounter + 1) * 20;

    TextBox textBox = new TextBox();

    textBox.Left = 120;
    textBox.Top = (labelCounter + 1) * 20;

    this.Controls.Add(label);
    this.Controls.Add(textBox);

    labelCounter++;
}