C# 公共字符串city{get;set;} 公共字符串状态{get;set;} 公共字符串zip{get;set;} 公共字符串国家{get;set;} 公共静态列表加载(字符串输入) { 列表=新列表(); XDocument doc=XDocument.Parse(输入); var listDict=doc.substands(“记录”).AsEnumerable() .选择(x=>new { dict=x.x(“字段”) .GroupBy(y=>y.Attribute(“name”).Value,z=>z.Attribute(“Value”).Value) .ToDictionary(y=>y.Key,z=>z.FirstOrDefault()) }); foreach(listDict中的var dict) { dp_donorsearch newDp=新dp_donorsearch(); 列表。添加(新DP); newDp.donor_id=dict.dict[“donor_id”]; newDp.first_name=dict.dict[“first_name”]; newDp.last_name=dict.dict[“last_name”]; newDp.email=dict.dict[“email”]; newDp.business_phone=dict.dict[“business_phone”]; newDp.mobile_phone=dict.dict[“mobile_phone”]; newDp.home_phone=dict.dict[“home_phone”]; newDp.address=dict.dict[“地址”]; newDp.address2=dict.dict[“address2”]; newDp.city=dict.dict[“城市”]; newDp.state=dict.dict[“state”]; newDp.zip=dict.dict[“zip”]; newDp.country=dict.dict[“国家”]; } 退货清单; } } } } ​

C# 公共字符串city{get;set;} 公共字符串状态{get;set;} 公共字符串zip{get;set;} 公共字符串国家{get;set;} 公共静态列表加载(字符串输入) { 列表=新列表(); XDocument doc=XDocument.Parse(输入); var listDict=doc.substands(“记录”).AsEnumerable() .选择(x=>new { dict=x.x(“字段”) .GroupBy(y=>y.Attribute(“name”).Value,z=>z.Attribute(“Value”).Value) .ToDictionary(y=>y.Key,z=>z.FirstOrDefault()) }); foreach(listDict中的var dict) { dp_donorsearch newDp=新dp_donorsearch(); 列表。添加(新DP); newDp.donor_id=dict.dict[“donor_id”]; newDp.first_name=dict.dict[“first_name”]; newDp.last_name=dict.dict[“last_name”]; newDp.email=dict.dict[“email”]; newDp.business_phone=dict.dict[“business_phone”]; newDp.mobile_phone=dict.dict[“mobile_phone”]; newDp.home_phone=dict.dict[“home_phone”]; newDp.address=dict.dict[“地址”]; newDp.address2=dict.dict[“address2”]; newDp.city=dict.dict[“城市”]; newDp.state=dict.dict[“state”]; newDp.zip=dict.dict[“zip”]; newDp.country=dict.dict[“国家”]; } 退货清单; } } } } ​,c#,xml,C#,Xml,以下是如何将其反序列化到类结构中 引用xml命名空间 using System.Xml; using System.Xml.Serialization; 反序列化 string input = "<result>\n" + "<record>" + "<field name=\"donor_id\" id=\"donor_id\" value=\"987

以下是如何将其反序列化到类结构中

引用xml命名空间

 using System.Xml;
 using System.Xml.Serialization;
反序列化

        string input =
            "<result>\n" +
               "<record>" +
                   "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                   "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                   "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                   "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                   "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                   "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                   "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                   "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                   "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                   "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                   "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                   "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                   "<field name=\"country\" id=\"country\" value=\"USA\" />" +
               "</record>" +
           "</result>";

        XmlSerializer serializer = new XmlSerializer(typeof(Result));
        Result result = serializer.Deserialize(new System.IO.StringReader(input)) as Result;

您是否尝试过使用XmlSerializer类的反序列化方法。您只需要一行代码(除了类定义之外)就可以将xml反序列化到您的数据结构中。我喜欢您的想法,但您能建议我如何将其应用到这个示例中吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input =
                "<result>" +
                   "<record>" +
                       "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                       "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                       "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                       "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                       "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                       "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                       "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                       "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                       "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                       "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                       "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                       "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                       "<field name=\"country\" id=\"country\" value=\"USA\" />" +
                   "</record>" +
                  "<record>" +
                       "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                       "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                       "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                       "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                       "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                       "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                       "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                       "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                       "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                       "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                       "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                       "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                       "<field name=\"country\" id=\"country\" value=\"USA\" />" +
                   "</record>" +
               "</result>";

            XDocument doc = XDocument.Parse(input);


            var listDict = doc.Descendants("record").AsEnumerable()
                .Select(x => x.Descendants("field")
                .GroupBy(y => y.Attribute("name").Value, z => z.Attribute("value").Value)
                .ToDictionary(y => y.Key, z => z.FirstOrDefault())
                .ToList());



        }
    }
}

​
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input =
                "<result>" +
                   "<record>" +
                       "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                       "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                       "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                       "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                       "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                       "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                       "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                       "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                       "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                       "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                       "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                       "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                       "<field name=\"country\" id=\"country\" value=\"USA\" />" +
                   "</record>" +
                  "<record>" +
                       "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                       "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                       "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                       "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                       "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                       "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                       "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                       "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                       "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                       "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                       "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                       "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                       "<field name=\"country\" id=\"country\" value=\"USA\" />" +
                   "</record>" +
               "</result>";

            List<dp_donorsearch> list = dp_donorsearch.Load(input);


        }
        public class dp_donorsearch
        {
            public string donor_id { get; set; }
            public string first_name { get; set; }
            public string last_name { get; set; }
            public string email { get; set; }
            public string business_phone { get; set; }
            public string mobile_phone { get; set; }
            public string home_phone { get; set; }
            public string address { get; set; }
            public string address2 { get; set; }
            public string city { get; set; }
            public string state { get; set; }
            public string zip { get; set; }
            public string country { get; set; }

            public static List<dp_donorsearch> Load(string input)
            {
                List<dp_donorsearch> list = new List<dp_donorsearch>();
                XDocument doc = XDocument.Parse(input);

                var listDict = doc.Descendants("record").AsEnumerable()
                    .Select(x => new
                    {
                        dict = x.Descendants("field")
                            .GroupBy(y => y.Attribute("name").Value, z => z.Attribute("value").Value)
                            .ToDictionary(y => y.Key, z => z.FirstOrDefault())
                    });

                foreach(var dict in listDict)
                {
                    dp_donorsearch newDp = new dp_donorsearch();
                    list.Add(newDp);

                    newDp.donor_id = dict.dict["donor_id"];
                    newDp.first_name = dict.dict["first_name"];
                    newDp.last_name = dict.dict["last_name"];
                    newDp.email = dict.dict["email"];
                    newDp.business_phone = dict.dict["business_phone"];
                    newDp.mobile_phone = dict.dict["mobile_phone"];
                    newDp.home_phone = dict.dict["home_phone"];
                    newDp.address = dict.dict["address"];
                    newDp.address2 = dict.dict["address2"];
                    newDp.city = dict.dict["city"];
                    newDp.state = dict.dict["state"];
                    newDp.zip = dict.dict["zip"];
                    newDp.country = dict.dict["country"];
                }

                return list;
            }



        }
    }
}
​
 using System.Xml;
 using System.Xml.Serialization;
        string input =
            "<result>\n" +
               "<record>" +
                   "<field name=\"donor_id\" id=\"donor_id\" value=\"9879\" />" +
                   "<field name=\"first_name\" id=\"first_name\" value=\"Trix5647\" />" +
                   "<field name=\"last_name\" id=\"last_name\" value=\"Rabbit657\" />" +
                   "<field name=\"email\" id=\"email\" value=\"test@asd..com\" />" +
                   "<field name=\"business_phone\" id=\"business_phone\" value=\"\" />" +
                   "<field name=\"mobile_phone\" id=\"mobile_phone\" value=\"\" />" +
                   "<field name=\"home_phone\" id=\"home_phone\" value=\"\" />" +
                   "<field name=\"address\" id=\"address\" value=\"Street S.W. \" />" +
                   "<field name=\"address2\" id=\"address2\" value=\"\" />" +
                   "<field name=\"city\" id=\"city\" value=\"Quaker\" />" +
                   "<field name=\"state\" id=\"state\" value=\"PA\" />" +
                   "<field name=\"zip\" id=\"zip\" value=\"1234\" />" +
                   "<field name=\"country\" id=\"country\" value=\"USA\" />" +
               "</record>" +
           "</result>";

        XmlSerializer serializer = new XmlSerializer(typeof(Result));
        Result result = serializer.Deserialize(new System.IO.StringReader(input)) as Result;
[XmlRoot("result")]
public class Result
{
    [XmlElement("record")]
    public Record[] Records { get; set; }
}

public class Record
{
    [XmlElement("field")]
    public Field[] Fields { get; set; }
}

public class Field
{
    [XmlAttribute("name")]
    public string Name { get; set; }

    [XmlAttribute("id")]
    public string Id { get; set; }

    [XmlAttribute("value")]
    public string Value { get; set; }
}