我有这个xml,我想反序列化,但问题是我无法在每一天都得到所有的<food>
元素。有没有办法通过LINQ由linq反序列化xml,默认有很多元素
<foodplaces>
<foodplace>
<name> The Indian Restaurant</name>
<week> 47 </week>
<monday>
<food> Pasta </food>
<food> chineese food</food>
<food> veg food </food>
</monday>
-<tuesday>
<food> Indian food</food>
<food> Veg food </food>
</tuesday>
</foodplace>
<name> Restauran Italian </name>
<week> 47 </week>
-<monday>
<food> Pizza </food>
<food> Checken </food>
<food> sallad </food>
</monday>
-<tuesday>
<food> Fish </food>
<food> ris </food>
<food> Biff </food>
<food> Checken </food>
</tuesday>
</foodplaces>
反序列化,并具有这些类
public class tuesday
{
private string[] _foods = new string[3];
public string food1
{
set { _foods[0] = value; }
}
public string food2
{
set { _foods[1] = value; }
}
public string food3
{
set { _foods[2] = value; }
}
}
public class foodplace
{
private string _name;
private string _week;
public string name
{
get { return _name; }
set { _name = value; }
}
public string week
{
get { return _week; }
set { _week = value; }
}
public monday m = new monday();
public tuesday t = new tuesday();
}
而且有这样的代码从XmlDocument
反序列化数据的类,但它似乎没有工作
foodplace fd = new foodplace();
List<foodplace> foodplaces =
(from _foodplace in xdocument.Element("foodplaces").Elements("foodplace")
select new foodplace
{
name = _foodplace.Element("name").Value,
week = _foodplace.Element("week").Value,
m = (from _day in _foodplace.Elements("monday")
select new tuesday
{
food1 = _day.Element("food").Value,
food2 = _day.Element("food").Value,
food3 = _day.Element("food").Value
})
你为什么以这种方式反序列化?那么'XmlSerializer'呢? – 2014-11-24 19:03:32
cus xml在URl链接上,我想在每个元素分配给它之前检查和修改每个元素。 – 2014-11-24 19:06:09
在你的setter中验证它们。 – 2014-11-24 19:09:59