首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用LINQ获取XML文档时,返回异常“表达式不能包含lambda表达式”

当使用LINQ获取XML文档时,返回异常“表达式不能包含lambda表达式”
EN

Stack Overflow用户
提问于 2014-02-13 17:08:40
回答 2查看 1.4K关注 0票数 0

我想从XML文档中获得一个使用linq的XElement。

我的linq查询是:

代码语言:javascript
复制
webDetails.Descendants("WebApplications")
          .Descendants("WebApplication")
          .Where(x => x.Attribute("Uri").Value.Equals(selectedItem.Value))
          .FirstOrDefault();

该文件包含以下xml节点:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<WebApplications>
  <WebApplication Name="SharePoint - 80" Uri="http://xxxx/">
    <SiteCollections>
      <SiteCollection>
        <RootWeb Title="Root" Url="/">
          <Webs />
        </RootWeb>
      </SiteCollection>
      <SiteCollection>
        <RootWeb Title="My Site Host" Url="/my/HostSite">
          <Webs />
        </RootWeb>
      </SiteCollection>
    </SiteCollections>
  </WebApplication>
  <WebApplication Name="SharePoint - 9999" Uri="http://xxx/">
    <SiteCollections>   
        <SiteCollection>
        <RootWeb Title="Ritesh Goswami" Url="/my/rami">
          <Webs />
        </RootWeb>
      </SiteCollection>
      <SiteCollection>
        <RootWeb Title="Riyaz Kalva" Url="/my/rialva">
          <Webs />
        </RootWeb>
      </SiteCollection>
    </SiteCollections>
  </WebApplication>
</WebApplications>

如果我执行如下查询:

代码语言:javascript
复制
webDetails.Descendants("WebApplications").Descendants("WebApplication").First()

我正在获取第一个元素,但是当我使用属性值进行过滤时,我得到了上面提到的错误。如何使用属性值过滤xmlelement?

EN

回答 2

Stack Overflow用户

发布于 2014-02-13 17:18:17

尝试使用以下命令:

代码语言:javascript
复制
webDetails.Descendants("WebApplications").Descendants("WebApplication").Where(x => string.Equals(x.Attribute("Uri").Value, selectedItem.Value, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
票数 0
EN

Stack Overflow用户

发布于 2014-02-13 17:28:26

试试这个。

代码语言:javascript
复制
string s = selectedItem.Value;
webDetails.Descendants("WebApplications").Descendants("WebApplication").Where(x => x.Attribute("Uri").Value.Equals(s)).FirstOrDefault();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21749527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档