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");
};
使用的是匿名对象
浙公网安备 33010602011771号