LINQ读取简单的XML数据

<Countries>
  <Country>
    <Name>Germany</Name>
    <Flag>../Images/Germany.png</Flag>
    <ID>1</ID>
    <Description>Germany Description</Description>
    <Capital>Berlin</Capital>
  </Country>
  <Country>
    <Name>Grece</Name>
    <Flag>../Images/Greece.png</Flag>
    <ID>2</ID>
    <Description>Grece Description</Description>
    <Capital>Athens</Capital>
  </Country>
  <Country>
    <Name>France</Name>
    <Flag>../Images/France.png</Flag>
    <ID>3</ID>
    <Description>France Description</Description>
    <Capital>Paris</Capital>
  </Country>
  <Country>
    <Name>Italy</Name>
    <Flag>../Images/Italy.png</Flag>
    <ID>4</ID>
    <Description>Italy Description</Description>
    <Capital>Rome</Capital>
  </Country>
  <Country>
    <Name>Spain</Name>
    <Flag>../Images/Spain.png</Flag>
    <ID>5</ID>
    <Description>Spain Description</Description>
    <Capital>Madrid</Capital>
  </Country>
  <Country>
    <Name>UK</Name>
    <Flag>../Images/UK.png</Flag>
    <ID>6</ID>
    <Description>UK Description</Description>
    <Capital>London</Capital>
  </Country>
</Countries>

public class XmlCountryRepository : ICountryRepository
{
        private static List<CountryData> countryList = null;

        static XmlCountryRepository()
        {
            XDocument loadedData = XDocument.Load("CountriesXML.xml");

            var data = from query in loadedData.Descendants("Country")
              select new CountryData
              {
                  Name = (string)query.Element("Name"),
                  Flag = (string)query.Element("Flag"),
                  Description = (string)query.Element("Description"),
                  Capital = (string)query.Element("Capital"),
                  ID = (int)query.Element("ID"),
              };
            countryList = data.ToList();
        }

        public IList<CountryData> GetCountryList()
        {
            return countryList;
        }

        public CountryData GetCountryById(int id)
        {
            return countryList.FirstOrDefault(c => c.ID == id);
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值