Asp.net Linqtoxml筛选不工作
我正在网上学习使用xml文件的教程。我想我漏掉了一些东西。因为什么也没发生,只是出现了一个空白页。我又做错了什么。我如何将过滤后的数据绑定到gridviewAsp.net Linqtoxml筛选不工作,asp.net,linq,gridview,filtering,Asp.net,Linq,Gridview,Filtering,我正在网上学习使用xml文件的教程。我想我漏掉了一些东西。因为什么也没发生,只是出现了一个空白页。我又做错了什么。我如何将过滤后的数据绑定到gridview protected void Page_Load(object sender, EventArgs e) { XElement root = XElement.Load(Server.MapPath("PurchaseOrders.xml")); IEnumerable<XElement> purchaseOrd
protected void Page_Load(object sender, EventArgs e)
{
XElement root = XElement.Load(Server.MapPath("PurchaseOrders.xml"));
IEnumerable<XElement> purchaseOrders =
from el in root.Elements("PurchaseOrder")
where
(from add in el.Elements("Address")
where
(string)add.Attribute("Type") == "Shipping" &&
(string)add.Element("State") == "NY"
select add)
.Any()
select el;
foreach (XElement el in purchaseOrders)
{
GridView1.DataSource = el;
}
GridView1.DataBind();
}
受保护的无效页面加载(对象发送方,事件参数e)
{
XElement root=XElement.Load(Server.MapPath(“PurchaseOrders.xml”);
i可数采购订单=
从根元素中的el(“PurchaseOrder”)
哪里
(来自附加元素(“地址”)
哪里
(字符串)add.Attribute(“类型”)=“发货”&&
(字符串)add.Element(“State”)=“NY”
选择(添加)
.Any()
选择el;
foreach(采购订单中的XElement el)
{
GridView1.DataSource=el;
}
GridView1.DataBind();
}
您当前正在未命名命名空间中查找元素,而您链接到的文件的命名空间URI为”http://www.adventure-works.com“
查找您要查找的元素
只需使用:
XNamespace aw = "http://www.adventure-works.com";
IEnumerable<XElement> purchaseOrders =
from el in root.Elements(aw + "PurchaseOrder")
where
(from add in el.Elements(aw + "Address")
where
(string)add.Attribute("Type") == "Shipping" &&
(string)add.Element(aw + "State") == "NY"
select add)
.Any()
select el;
xaw=”http://www.adventure-works.com";
i可数采购订单=
来自根元素中的el(aw+“PurchaseOrder”)
哪里
(来自附加元件(aw+“地址”)
哪里
(字符串)add.Attribute(“类型”)=“发货”&&
(字符串)add.Element(aw+“State”)=“NY”
选择(添加)
.Any()
选择el;
或者更简单一点,国际海事组织:
XNamespace aw = "http://www.adventure-works.com";
IEnumerable<XElement> purchaseOrders =
root.Elements(aw + "PurchaseOrder")
.Where(order => order.Elements(aw + "Address")
.Any(add => (string) add.Attribute(aw + "Type") == "Shipping"
&& (string) add.Element(aw + "State") == "NY"));
xaw=”http://www.adventure-works.com";
i可数采购订单=
根元素(aw+“采购订单”)
.Where(order=>order.Elements(aw+“Address”)
.Any(add=>(string)add.Attribute(aw+“Type”)==“Shipping”
&&(字符串)add.Element(aw+“State”)=“NY”);
(基本上,这不使用查询表达式,因为它们实际上没有帮助您,我使用的是Any
重载,它使用谓词…)