2012-02-17 83 views
9

我是C#的新手,我正在嘗試讀取XML文件並將其內容傳輸到C#對象。如何將XML文件內容映射到C#對象

例如一個例子的XML文件可以是:

<people> 
     <person> 
      <name>Person 1</name> 
      <age>21</age> 
     </person> 
     <person> 
      <name>Person 2</name> 
      <age>22</age> 
     </person> 
    </people> 

..可以映射到C#類的陣列稱爲「人」:

Person[] people; 

,當一個人對象可以包含以下字段:

string name; 
    uint age; 

回答

14

聽起來好像您要使用XML序列化。已經有很多,但這是一個非常簡單的例子。 http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

你想要的片段是約1/4的一路下跌:

XmlSerializer deserializer = new XmlSerializer(typeof(List<Movie>)); 
TextReader textReader = new StreamReader(@"C:\movie.xml"); 
List<Movie> movies; 
movies = (List<Movie>)deserializer.Deserialize(textReader); 
textReader.Close(); 

希望這有助於

+1

到XML序列化代碼的鏈接樣本現在已經失效......太糟糕了。我認爲這就是爲什麼人們不希望鏈接到外部網站上的stackoverflow - 但我也是以前的這種fopaux罪犯,所以我不是一個真正的談話。 – nocarrier 2015-08-15 19:28:46

+0

我發佈了相關代碼以防鏈接死亡。另外,你可以谷歌代碼的休息,或者甚至嘗試wayback機器 - https://web.archive.org/web/20130921190426/http://tech.pro/tutorial/798/csharp-tutorial-xml - 序列化我在這裏沒有看到任何問題.... – 2015-08-16 06:24:39

+1

http://web.archive.org/web/20130921190426/http://tech.pro/tutorial/798/csharp-tutorial-xml-serialization - wayback機器鏈接 – SacredSkull 2015-10-16 18:24:26