【问题标题】:How to search for a set of node using search criteria using Linq to SQL?如何使用 Linq to SQL 使用搜索条件搜索一组节点?
【发布时间】:2010-10-01 06:50:13
【问题描述】:

我有这个 XML

<?xml version="1.0" encoding="utf-8"?>
<Customers>
   <Customer Id="1">
    <Name>rtertr</Name>
    <DOB>2010-12-12T00:00:00</DOB>
    <EMail>werer@test.com</EMail>
  </Customer>
  <Customer Id="2">
    <Name>west</Name>
    <DOB>0001-01-01T00:00:00</DOB>
    <EMail>west@test.com</EMail>
   </Customer> 
  <Customer Id="3">
    <Name>west</Name>
    <DOB>0001-01-01T00:00:00</DOB>
    <EMail>west@test.com</EMail>
   </Customer> 
</Customers>

如何获取名称为 west (&lt;Name&gt;west&lt;/Name&gt;) 的所有节点并将其存储在集合中?在我们的例子中,它应该返回 2 个节点(有两个节点的名称为 west。这必须使用 Linq to SQL 来实现。

【问题讨论】:

    标签: c# linq-to-xml


    【解决方案1】:
    var doc = XDocument.Parse("<Customers>...</Customers>");
    
    var result = doc.Root
                    .Elements("Customer")
                    .Where(e => (string)e.Element("Name") == "west")
                    .ToList();
    

    var doc = XDocument.Parse("<Customers>...</Customers>");
    
    var result = (from e in doc.Root.Elements("Customer")
                  where (string)e.Element("Name") == "west"
                  select e
                 ).ToList();
    

    【讨论】:

      【解决方案2】:

      无法使用 LINQ to SQL 访问 XML,除非您首先转换数据并将其存储在 SQL 数据库中。它被称为 LINQ to SQL 是有原因的。也许你的意思是 LINQ to XML 所以我会假设。

      假设您有一个包含 XML 的 XDocument

      var customers = myDocument.Root.Descendants()
          .Where(n => n.Name.LocalName == "Customer" &&
                      n.Element("Name").Value == "west")
          .ToList();
      

      【讨论】:

        【解决方案3】:

        带有ToList()扩展方法。

         xdoc.Root.Descendants("Customer")
            .Where(c => c.Element("Name").Value == "west")
            .ToList();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-22
          • 2011-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多