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

时间:2013-10-03 05:12:02

标签: c# xml visual-studio object insert

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

文件被覆盖。

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

1 个答案:

答案 0 :(得分:-1)

问题在于:

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");

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