1
<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 ,而在在线示例中它们只是元素。

4

1 回答 1

4

如果你有一个结果对象,你可以将 aXmlRootAttribute传入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>

在此处输入图像描述

于 2013-02-01T06:19:45.313 回答