如何将变量写入XML文件?

时间:2013-11-14 22:07:32

标签: c# xml linq

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

     public string name;
     public string age;

放入这些值的是

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

现在我已经创建了一个处理这些变量放置到XML文件中的类,但是每当我尝试从公共字符串中检索变量时,它总是以null形式出现;即使我在将其保存到公共变量时进行测试以查看它是否为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);

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

感谢。

1 个答案:

答案 0 :(得分: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,{{1}的类之间保持/传递和其他属性。