繁体   English   中英

具有WHERE条件的XElement LINQ失败

XElement LINQ with WHERE condition fails

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用LINQ从XML中获取元素。

XML文件示例:

<properties>
  <property>
    <location>
      <unit-number>101</unit-number>
      <street-address>123 Main</street-address>
      <city-name>City</city-name>
      <state-code>ST</state-code>
      <zipCode>00000</zipCode>
      <display-address>no</display-address>
    </location>
    <details>
      <property-type>apartment</property-type>
      <price>599.00</price>
      <num-bedrooms>1</num-bedrooms>
      <num-bathrooms>1</num-bathrooms>
      <living-area-square-fee>611</living-area-square-fee>
      <description></description>
      <provider-listingid>819</provider-listingid>
    </details>
    <agent>
      <agent-name>Name</agent-name>
      <agent-email>email@email.com</agent-email>
    </agent>
  </property>
<properties>

我从Azure服务器打开XML(工作正常),然后尝试使用LINQ对其进行过滤:

// I have a functiion that loads the XML from blob
// It is working. debug shows the XML in my document variable
XDocument document = XDocument.Load(blob.Uri.AbsoluteUri);

List<XElement> check = (from el in document.Root.Elements("properties").Elements("property").Elements("agent").Elements("agent-email")
                         where el.Value == "email@email.com"
                               select el).ToList();

// Why this returns null? I have agent-email = email@email.com

谢谢

2 个回复

Document.Root properties元素。 删除.Elements("properties") ,它将为您提供所需的元素。

对于任何VB'ers。

    Dim xe As XElement

    'some test data
    xe = <properties>
             <property>
                 <location>
                     <unit-number>101</unit-number>
                     <street-address>123 Main</street-address>
                     <city-name>City</city-name>
                     <state-code>ST</state-code>
                     <zipCode>00000</zipCode>
                     <display-address>no</display-address>
                 </location>
                 <details>
                     <property-type>apartment</property-type>
                     <price>599.00</price>
                     <num-bedrooms>1</num-bedrooms>
                     <num-bathrooms>1</num-bathrooms>
                     <living-area-square-fee>611</living-area-square-fee>
                     <description></description>
                     <provider-listingid>819</provider-listingid>
                 </details>
                 <agent>
                     <agent-name>Name</agent-name>
                     <agent-email>email@email.com</agent-email>
                 </agent>
             </property>
         </properties>

    'get matching email
    Dim mtch As String = "email@email.com"
    Dim check As List(Of XElement)

    check = xe.<property>.<agent>.<agent-email>.Where(Function(el)
                                                          Return el.Value = mtch
                                                      End Function).ToList
1 LINQ具有2 WHERE条件

这是数据库表 我想用此代码返回数据库中存在多少条记录的结果 x和y有一个值。 我如何才能使此代码在2个条件下工作? 或任何其他方式使这项工作 ...

2 XElement / LinQ代码失败

所以我有以下代码: 我得到的错误是:替换失败:System.NullReferenceException:对象引用未设置为对象的引用。 在Application.Program.Replace(字符串文件路径)中:第21行(第一个Console.WriteLine) 此程序的目的 ...

3 具有多个条件where子句的LINQ查询

我似乎无法弄清楚如何使用基于多个可空变量的where子句进行LINQ查询。 我尝试了在此站点上看到的“ if”方法,但出现错误: 我的名字在当前上下文中不存在。 “点”字段的格式设置为“ POINT(num1,num2)”,并且在SQL查询中可以正常工作。 ...

4 Linq具有if条件的多重where子句

我正在尝试使用多个where子句和where子句进一步包含内联if条件编写Linq。 即使MeetingStat == null,也会执行此条件(DateTime.UtcNow&gt; = s.MeetingStartTime &amp;&amp; DateTime.UtcNow &lt ...

2016-12-14 06:23:26 2 457   c#/ linq
5 具有多个条件的 Linq @Where 子句

这是我的导出用户界面 这是我的代码: 问题是如果我只在下拉列表中选择区域:家庭它会生成正确的列表。 但是当我选择 dropdownlist:family&amp;status 时,它什么也没产生。 这是表: ...

2020-09-11 10:13:58 1 28   linq
8 如何基于linq中的条件从特定Xelement获取值

我有一个如上所述的文件,我想获取其名称属性包括“纬度”,“经度”,“转弯半径”,“ BearingTo”,“ RangeTo”的那些Xelements的值,并将这些值分配给宾语。 该对象具有类似于name属性值的属性。 该文件有9个节点,因此我应该能够从该文件中生成9个对象。 我已经试过 ...

9 LinQ与Count和Where条件

Hihi,我有一张包含以下数据的表格: 我想检索至少一个SampleKey为3的所有行,这应该给我 应返回带有2和3的SampleID,因为它们被视为一对。 请告知我如何实现这一目标? 谢谢! ...

10 Linq条件Where子句

在搜索linq条件where子句时,我发现了这篇文章 ,他们使用的方式如下: 但我想知道这种方法有效吗? linq会执行多少次查询? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM