<results>
<result>
<egov_ref_no>20121203001</egov_ref_no>
<status>OK</status>
<err_code>01</err_code>
</result>
<result>
<egov_ref_no>20121203002</egov_ref_no>
<status>OK</status>
<err_code>02</err_code>
</result>
<result>
<egov_ref_no>20121203003</egov_ref_no>
<status>OK</status>
<err_code>03</err_code>
</result>
</results>
上面的代码显示根节点已经是IEnumerable,在线示例中它们只是元素。
答案 0 :(得分:4)
如果您有结果对象,则只需将XmlRootAttribute
传入XmlSerializer
构造函数即可。在这种情况下,它的“结果”
示例:
List<Result> results = new List<Result>();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Result>), new XmlRootAttribute("results"));
using (FileStream stream = new FileStream(@"C:\Test.xml", FileMode.Open))
{
results = (List<Result>)xmlSerializer.Deserialize(stream);
}
我的结果对象:
[XmlType(TypeName = "result")]
public class Result
{
[XmlElement(ElementName = "egov_ref_no")]
public long EgovRefNo { get; set; }
[XmlElement(ElementName = "status")]
public string Status { get; set; }
[XmlElement(ElementName = "err_code")]
public int ErrorCode { get; set; }
}
这将返回List<Result>