我有一个问题。如何使用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);
如果有人可以提供帮助,那将非常感激。
感谢。
答案 0 :(得分:1)
顺便提一句,代码看起来,name
和age
都是局部变量,会覆盖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}的类之间保持/传递和其他属性。