【发布时间】:2015-06-17 14:38:56
【问题描述】:
我正在尝试反序列化这个 XML:
<Response>
<Make Name="Audi">
<Model Name="A7">
<Specs>
<Spec Identifier="330025">...</Spec>
<Spec Identifier="330026">...</Spec>
<Spec Identifier="330027">...</Spec>
<Spec Identifier="330028">...</Spec>
<Spec Identifier="330008">...</Spec>
<Spec Identifier="330038">...</Spec>
<Spec Identifier="330024">...</Spec>
<Spec Identifier="330019">...</Spec>
<Spec Identifier="330020">...</Spec>
我只对规格列表感兴趣,但似乎无法反序列化它。我尝试了以下方法:
类:
[XmlRoot]
public class Response
{
[XmlArray("Specs"), XmlArrayItem("Spec")]
public List<Spec> Results { get; set; }
//[XmlArray("Specs"), XmlArrayItem("Spec")]
public List<Make> Make { get; set; }
}
public class Spec
{
[XmlAttribute("YearProductionStarts")]
public string YearProductionStarts { get; set; }
[XmlAttribute("YearProductionEnd")]
public string YearProductionEnd { get; set; }
}
public class Make
{
public List<Model> Model { get; set; }
}
public class Model
{
public List<Spec> Spec { get; set; }
}
并用这种方法毫无乐趣地反序列化:
//Deserialize responseXml to response object
var xmLserializer = new XmlSerializer(typeof(ResponseGetSpec));
using (var reader = new StringReader(responseXml))
{
return (ResponseGetSpec)xmLserializer.Deserialize(reader);
}
【问题讨论】:
标签: c# xml xml-deserialization