2015-02-11 2 views
1

У меня есть два класса под названием Movie и Movie Type и im, пытающиеся создать объекты этих классов на основе данного примера xml.Как извлечь данные из XML-документа

public class Movie 
{ 
    public string title; 
    public string rating; //can always convert.toin32 later 
} 

public class Genre 
{ 
int id; 
string genreType; 
} 

Я хотел бы создать объекты этого класса на основе следующего XML, что было бы лучшим/быстрым способом?

<movie> 
<title> se7en </title> 
<genre> thriller</genre> 
<rating> 18 </rating> 
</movie> 
<movie> 
<title> zodiac </title> 
<genre> thriller</genre> 
<rating> 18 </rating> 
</movie> 
+0

возможно дубликат [Преобразование XML в объект с помощью отражения] (HTTP: // stackoverflow.com/questions/3268912/convert-xml-to-object-using-reflection) – Bio42

+0

возможно дублировать [Query Xml File for Records с использованием Linq] (http://stackoverflow.com/questions/26422431/query-xml-file-for-records-using-linq) –

ответ

4

попробовать это

Лучше будет LINQ к XML

XDocument document = XDocument.Load("MyDoc.xml"); 

List<Movie> statusList = (from movies in document.Descendants("Movie") 
          select new Movie() 
          { 
           title = movies.Element("title").Value, 
           rating = movies.Element("rating").Value, 
           genre = movies.Element("genre").Value 
          }).ToList(); 
+0

что делать, если вы разделились на два класса? например класс фильм { струнный фильм; рейтинг строк; } класс Тип { string Жанр; } } как это сделать, учитывая, что вы можете создать один новый объект в выбранном новом фильме() –

3

или это

var xml = @"<movie/>"; 
var serializer = new XmlSerializer(typeof(Movie)); 
using (var reader = new StringReader(xml)) 
{ 
    var movie = (Movie)serializer.Deserialize(reader); 
} 
Смежные вопросы