xml转换DataTable

读取xml最重要的要知道xml是那种写法

第一种写法:

<?xml version="1.0" encoding="utf-8" ?>

<ProvinceList>
 <Province>
<Value>1</Value>
<ProvinceName>北京市</ProvinceName>
 </Province>
<ProvinceList>

Linq语句:

 XDocument doc= XDocument.Load(Server.MapPath("xxx.xml"));

 var provincelist = (from p in doc.Descendants("Province")//Province为节点名字
                                select new
                                {
                                    provinceid = p.Element("Value").Value,           //Element通过节点直接取值
                                    provincename = p.Element("ProvinceName").Value
                                });
            DataTable dt = new DataTable();

            dt.Columns.Add("Value", typeof(int));
            dt.Columns.Add("ProvinceName", typeof(string));

            DataRow dr = null;
            foreach (var item in provincelist)
            {
                dr = dt.NewRow();
                dr[0] = item.provinceid;
                dr[1] = item.provincename;
                dt.Rows.Add(dr);
            }
            return dt;

第二种xml

<?xml version="1.0" encoding="utf-8" ?>

<CityList>

  <City Value="1" CityName="北京市" CityID="1" ProvinceID="1" />

</CityList>

Linq语句:

 XDocument adList = XDocument.Load(Server.MapPath("Data.xml"));

                var cityList= from a in adList .Descendants("CityList").Elements("City ")//在跟节点CityList查找City 

                        .Where(w => w.Attribute("ProvinceID").Value == "1")   //若要筛选就用上这个语句  

select new  

                         {

                           CityId=a.Attribute("Value").Value,  

   CityName=a.Attribute("CityName").Value

                         };

                

                  DataTable dtCity = new DataTable();

           dtCity .Columns.Add("Value", typeof(int));
           dtCity .Columns.Add("CityName", typeof(string));

            DataRow dr = null;
            foreach (var item incityList)
            {
                dr = dt.NewRow();
                dr[0] = item.CityId;
                dr[1] = item.CityName;
               dtCity .Rows.Add(dr);
            }
            returndtCity ;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值