我发现这个使用 XLINQ (LINQ to XML) 加载 XML 的很棒的教程。
http://www.codearsenal.net/2012/07/c-sharp-load-xml-using-xlinq.html
它对我帮助很大,我完成了工作。
我所做的唯一改变是他有这条线:
from e in XDocument.Load(@"..\..\Employees.xml").Root.Elements("employee")
我这样写:
from el in XDocument.Load("XML_Files/Employees.xml").Root.Elements("employee")
我必须像这样更改路径才能访问在我的 Visual Studio 项目中找到的本地 xml 文件。
但现在我需要将数据保存回我的项目解决方案中的文件。同样,我的 xml 文件位于我的 C# 项目中。它不在桌面或任何东西上,它是添加到项目解决方案中的文件。
我似乎找不到任何关于如何完成这项任务的好资源。有谁知道一个好的教程或代码,一个开始的参考?
我将对象列表插入到 xml 文件中。对象具有基本的数据类型属性,但对象属性之一是双精度列表。
谁能提供一个好的教程或链接?甚至是通用代码示例?
我想保持这个功能尽可能基本。
请帮忙。
- - - - - - - - - 更新 - - - - - - - - -
我现在实际上得到了这种工作。下面的代码做了我需要的,除了它不会将数据写入我在 Visual Studio 项目中的本地文件。但是,它很乐意将数据写入我在桌面上创建的测试文件。
有人知道为什么吗??
//create the serialiser to create the xml
XmlSerializer serialiser = new XmlSerializer(typeof(List<Student>));
// Create the TextWriter for the serialiser to use
TextWriter Filestream = new StreamWriter(@"C:\\Users\\MyName\\Desktop\\output.xml");
//write to the file
serialiser.Serialize(Filestream, employees);
// Close the file
Filestream.Close();
- - - - 更新 - - - - -
好的,想通了。
此代码有效:
public void WriteXML()
{
//create the serialiser to create the xml
XmlSerializer serialiser = new XmlSerializer(typeof(List<Student>));
// Create the TextWriter for the serialiser to use
TextWriter Filestream = new StreamWriter(@"XML_Files\Employees.xml");
//write to the file
serialiser.Serialize(Filestream, employees);
// Close the file
Filestream.Close();
}
数据被插入到 xml 文件中,但它不会显示在 Visual Studio 中。但是当我在这里检查时:
C:\Users\Me\Desktop\MyProject\MyProject\bin\Debug\XML_Files
文件被覆盖。
此外,当我再次从应用程序重新加载数据时,会出现新条目。