1

我有个问题。如何使用 Linq to XML 将变量写入 XML 文件?我设置了它,以便将变量放入公共变量中

     public string name;
     public string age;

投入这些的价值是

     this.name = characterTextBox.Text;
     this.age = characterageTextBox.Text;

现在我创建了一个类来处理将这些变量放置到 XML 文件中,但是每次我尝试从公共字符串中检索变量时,它总是显示为 null;即使我在将它保存到公共变量时测试它是否为空。这是保存代码

    Form1 f = new Form1();
        String name = f.name;
        String age = f.age;


        var doc = XDocument.Load(XMLFILE.xml);


        var newElement = new XElement("player", name,
            new XElement("age", age));

        doc.Element("players").Add(newElement);


        doc.Save(XMLFILE.xml);

如果有人可以提供帮助,那将不胜感激。

谢谢。

4

1 回答 1

1

顺便说一句,您的代码看起来都是局部变量nameage它们会覆盖您的Form1类实例的字段。

假设您在单击btnSave表单上的按钮并且不使用额外的类时进行保存,您的代码应如下所示:

private void btnSave_Click(object sender, EventArgs e)
{
    this.name = characterTextBox.Text;
    this.age = characterAgeTextBox.Text;
    var file = "xmlfile.xml";
    var doc = XDocument.Load(file);
    var newElement = new XElement("player", name,
        new XElement("age", age));
    doc.Element("players").Add(newElement);
    doc.Save(file);
}

如果您想将保存的内容传递给其他类,您的代码的简化版本可能如下所示:

private void btnSave_Click(object sender, EventArgs e)
{
    name = characterTextBox.Text;
    age = characterAgeTextBox.Text;
    XmlUtility.Save(this);
}

class XmlUtility
{
    public static void Save(Form1 form)
    {
        string name = form.name;
        string age = form.age;
        var file = "xmlfile.xml";
        var doc = XDocument.Load(file);
        var newElement = new XElement("player", name,
            new XElement("age", age));
        doc.Element("players").Add(newElement);
        doc.Save(file);
    }
}

我只想补充一点,您可能想重新考虑一下应用程序的设计,也许创建一个Character类以便在类之间保存/传递Name,Age和其他属性。

于 2013-11-14T22:34:28.177 回答