LINQ to XML

XML文件如下:

 

<?xml version='1.0' encoding='gb2312'?>

<stores>

  <store>

    <stor_id>6380</stor_id>

    <stor_name>Eric the Read Books</stor_name>

    <stor_address>788 Catamaugus Ave.</stor_address>

  </store>

  <store>

    <stor_id>7066</stor_id>

    <stor_name>Barnum's</stor_name>

    <stor_address>567 Pasadena Ave.</stor_address>

  </store>

</stores>

绑定到GridView中

 

  var query = from xml in XElement.Load(MapPath("xml.xml")).Elements("store") select xml;

            this.GridView1.DataSource = query;

            this.GridView1.DataBind();

但显示字段没有需要的节点格式显示

应该创建一个对象

 

 public class Store

    {

        public int Stor_id { set; get; }

        public string Stor_name { set; get; }

        public string Stor_address { set; get; }

    }

然后在进行查询绑定

 

            var query = from xml in XElement.Load(MapPath("xml.xml")).Elements("store") select new Store { 

               Stor_id=(int)xml.Element("stor_id"),

               Stor_name=(string)xml.Element("stor_name"),

               Stor_address=(string)xml.Element("stor_address")

            };

如果上面的stor_name的强制类型转换给为ToString();显示是不正确 连节点也显示出来。

这个我也不知为什么,觉得很奇怪

其他的查询等跟Linq to object 差不多

 

 

连接查询的写法(连个xml创建对象连接)

 

var query=from m in XElement.Load(MapPath("xml1.xml")).Elements("store")

                   join g in XElement.Load(MapPath("xml2.xml")).Elements("sid")

                  select new {

                             Stor_id=(int)xml.Element("stor_id"),

               Stor_name=(string)xml.Element("stor_name"),

               Stor_address=(string)xml.Element("stor_address"),

               sorss=(string)xml.Element("stor_sorss");

                      };

使用的是匿名对象

 

posted @ 2015-03-12 20:49  yisic  阅读(72)  评论(0)    收藏  举报