Asp.net Linqtoxml筛选不工作

Asp.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

我正在网上学习使用xml文件的教程。我想我漏掉了一些东西。因为什么也没发生,只是出现了一个空白页。我又做错了什么。我如何将过滤后的数据绑定到gridview

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
重载,它使用谓词…)