将对象数据插入到本地 xml 文件

本文关键字:xml 文件 对象 数据 插入 | 更新日期: 2023-09-27 18:33:45

我找到了使用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

文件被覆盖。

此外,当我再次从应用程序重新加载数据时,会出现新条目。

将对象数据插入到本地 xml 文件

问题出在:

TextWriter Filestream = new StreamWriter(@"C:''Users''MyName''Desktop''output.xml");

将其更改为以下之一:

TextWriter Filestream = new StreamWriter("C:''Users''MyName''Desktop''output.xml");
TextWriter Filestream = new StreamWriter(@"C:'Users'MyName'Desktop'output.xml");

只需删除"@",或使用单斜杠: