2013-10-03 57 views
1

我發現這個使用XLINQ(LINQ to XML)加載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") 

我不得不改變這樣的路徑來訪問本地XML文件在我的Visual Studio項目中找到。

但現在我需要將數據保存回我的項目解決方案中的文件。同樣,我的xml文件位於我的C#項目中。它不在桌面或任何東西上,它是添加到項目解決方案中的文件。

我似乎無法找到任何有關如何完成此任務的好資源。有誰知道一個好的教程,或代碼,一個參考開始?

我將一個對象列表插入到xml文件中。這些對象具有基本的數據類型屬性,但其中一個對象屬性是雙精度對象屬性。

任何人都可以建議一個很好的教程或鏈接?甚至是一個通用的代碼示例?

我想保持此功能儘可能基本。

請幫忙。

------------------ UPDATE ------------------

事實上,我現在這種工作。下面的代碼完成我所需要的,除了它不會將數據寫入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(); 

-------- --------- UPDATE

好了,想通了。

此代碼:

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 

該文件被覆蓋。

此外,當我再次從應用程序重新載入數據時,新條目出現。

+0

你檢查項目輸出目錄/路徑? @Zolt – Rezoan

回答

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

只需刪除了 「@」,或使用單斜槓:

+0

請仔細閱讀OPs問題。 – Rezoan

+0

@JakubSzułakiewicz,謝謝,但有了你的建議,我仍然在我的桌面上寫入測試文件,而不是寫入我的Visual Studio項目中的文件。數據需要到這裏來結束我的XML文件:'XML_Files/Employees.xml'。 – Zolt