繁体   English   中英

Linq to XML 问题

[英]Linq to XML Question

给定以下 XML,我可以使用什么查询将 preapprovalKey 的值提取到字符串变量? LINQ to XML 还是有点新。

  <?xml version="1.0" encoding="UTF-8" ?> 
- <ns2:PreapprovalResponse xmlns:ns2="http://svcs.paypal.com/types/ap">
- <responseEnvelope>
  <timestamp>2011-04-05T18:35:32.952-07:00</timestamp> 
  <ack>Success</ack> 
  <correlationId>7cec030fa3eb2</correlationId> 
  <build>1655692</build> 
  </responseEnvelope>
  <preapprovalKey>PA-9AG427954Y7578617</preapprovalKey> 
  </ns2:PreapprovalResponse>
XDocument doc = XDocument.Load("test.xml");
string preapprovalKey = doc.Descendants("preapprovalKey").Single().Value;

请参阅下面的示例,它可以帮助您解决问题。 :)

考虑下面的 XML 作为 SQL 表的列之一。

<Root>
<Name>Dinesh</Name>
<Id>2</Id>
</Root>

查询的目的是从 XML 中获取名称。 在此示例中,我们将获取“Dinesh”作为值。

   var Query = (from t in dbContext.Employee.AsEnumerable()
    where t.active == true 
    select new Employee
    {
    Id = t.AtpEventId,  
    Name = XDocument.Parse(t.Content).Descendants("Root").Descendants("Name").ToList().  
    Select(node => node.Value.ToString()).FirstOrDefault()  
    });

请注意以下事项:-

  1. 在上面的 LINQ 中,t.active == true 只是一个示例,可以在需要时创建一些条件。

  2. 请注意,在上面的 LInQ 查询中,始终使用 AsEnumerable(),就像我在
    Linq 查询的第一个文件.exmaple(var Query = (from t in dbContext.Employee.AsEnumerable())

  3. Descendants(" Root ").Descendants(" Name "),这里Root应该是与XML匹配的Element,在Root下我们有Name元素,所以我们写了Descendants(" Root ").Descendants(" Name " )

  4. 如需进一步说明,您可以通过 danish.eggericx@gmail.com 与我联系

暂无
暂无

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

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