解决方案 »

  1.   

    两个错误:
    1、xml的根节点是wlb_waybill_search_response,却没有实体类表示
    2、XmlSerializer创建的时候用typeof(WaybillApplySubscriptionInfo),序列化却要求List<...>,连个不匹配。简单的做法就是添加一个实体类:class Test
        {
            static void Main(string[] args)
            {
                string xml = ...;
                XmlSerializer serializer = new XmlSerializer(typeof(SearchResponse));
                SearchResponse searchResponse = (SearchResponse)serializer.Deserialize(new StringReader(xml));
                var subInfo= searchResponse.Results;
            }
        }    [Serializable]
        [XmlRoot("wlb_waybill_search_response")]
        public class SearchResponse
        {
            [XmlElement("results")]
            public List<WaybillApplySubscriptionInfo> Results;
        }
      

  2.   

    感谢楼上的大哥,我测试了一下,没有错误,但是好象得不到值这是我的代码:XmlSerializer serializer = new XmlSerializer(typeof(SearchResponse));
    SearchResponse searchResponse = (SearchResponse)serializer.Deserialize(new StringReader(xml));
    List<WaybillApplySubscriptionInfo> subInfo = searchResponse.Results;for (int k = 0; k < subInfo.Count; k++)
                {
                    List<WaybillBranchAccount> branchAccounts = subInfo[k].BranchAccountCols;
                    for (int m = 0; m < branchAccounts.Count; m++)
                    {
                        Response.Write("<p><p>----------branchAccounts------------<p><p>");
                        Response.Write("AllocatedQuantity:" + branchAccounts[m].AllocatedQuantity.ToString() + "<hr>");
                        Response.Write("BranchCode:" + branchAccounts[m].BranchCode + "<hr>");
                        Response.Write("CpCode:" + branchAccounts[m].CpCode + "<hr>");
                        Response.Write("Quantity:" + branchAccounts[m].Quantity.ToString() + "<hr>");
                        Response.Write("SellerId:" + branchAccounts[m].SellerId.ToString() + "<hr>");
                        //Response.Write("<br>----------ShippAddressCols------------<br>");
                        List<WaybillAddress> addressList = branchAccounts[m].ShippAddressCols;
                        for (int n = 0; n < addressList.Count; n++)
                        {
                            Response.Write("<p><p>----------ShippAddressCols------------<p><p>");
                            Response.Write("AddressDetail:" + addressList[n].AddressDetail + "<hr>");
                            Response.Write("AddressFormat:" + addressList[n].AddressFormat + "<hr>");
                            Response.Write("Area:" + addressList[n].Area + "<hr>");
                            Response.Write("AreaCode:" + addressList[n].AreaCode.ToString() + "<hr>");
                            Response.Write("City:" + addressList[n].City + "<hr>");
                            Response.Write("CityCode:" + addressList[n].CityCode.ToString() + "<hr>");
                            Response.Write("DivisionId:" + addressList[n].DivisionId.ToString() + "<hr>");
                            Response.Write("Province:" + addressList[n].Province + "<hr>");
                            Response.Write("ProvinceCode:" + addressList[n].ProvinceCode.ToString() + "<hr>");
                            Response.Write("Town:" + addressList[n].Town + "<hr>");
                            Response.Write("TownCode:" + addressList[n].TownCode.ToString() + "<hr>");
                        }
                    }
                }
      

  3.   

    lz  可以通过使用linq to xml 来操作你的XML文件。
    通过操作xml、每个节点及节点中的属性来给你的实体类复制。
    http://blog.csdn.net/duanzi_peng/article/details/24018431