我的程序从网络服务器接收了下一个数据:
<response>
<movie>
<id>111112</id>
<type>serial</type>
<title1>movie_title1</title1>
<title2>movie_title2</title2>
<year>some_year</year>
<runtime>some_runtime</runtime>
<poster>
<small url="url_of_small_poster" />
<medium url="url_of_medium_poster" />
<big url="url_of_big_poster" />
</poster>
<url>movies_url</url>
<imdb rating="5.0" votes="67" />
</movie>
<movie>...</movie>...
</response>
我想解析这个XML字符串的所有值,并用这个值填充我的类:
public class MoviesClass
{
String Id{get;set;}
String Type{get;set;}
String Title1{get;set;}
String Title2{get;set;}
Int32 Year{get;set;}
String SmallPostersURL{get;set;}
String MediumPostersURL{get;set;}
String BigPostersURL{get;set;}
String MoviesURL{get;set;}
Single IMDB_Rating{get;set;}
Single IMDB_Votes{get;set;}
}
我该怎么做?如何使用LINQ获取此值?
答案 0 :(得分:1)
var xDoc = XDocument.Load("path");
var values =
xDoc.Descendants("movie")
.Select(
x =>
new MoviesClass
{
Id = (string) x.Element("id"),
Type = (string) x.Element("type"),
Title1 = (string) x.Element("title1"),
Title2 = (string) x.Element("title2"),
Year = (int)x.Element("year"),
Runtime = (string)x.Element("runtime"),
SmallPostersURL = (string)x.Element("poster").Element("small").Attribute("url"),
MediumPostersURL = (string)x.Element("poster").Element("medium").Attribute("url"),
BigPostersURL = (string)x.Element("poster").Element("big").Attribute("url"),
MoviesURL = (string)x.Element("url"),
IMDB_Rating = (float)x.Element("imdb").Attribute("rating"),
IMDB_Votes = (float)x.Element("imdb").Attribute("votes")
});