Linq到XML问题

时间:2011-04-06 02:02:10

标签: c# xml linq linq-to-xml

鉴于以下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>

2 个答案:

答案 0 :(得分:5)

XDocument doc = XDocument.Load("test.xml");
string preapprovalKey = doc.Descendants("preapprovalKey").Single().Value;

答案 1 :(得分:0)

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

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

timer(0,5000).subscribe(() => {
  AzureService.send("ObCloud").then((data)=>{
                      let groupedData = this.groupBy(data.value, obj => obj.definition.id)
                      this.createChartObjects(groupedData)
                  });
                  AzureService.send("Kenevo%20Adjustment").then((data)=>{
                      let groupedData = this.groupBy(data.value, obj => obj.definition.id)
                      this.createChartObjects(groupedData)
                  });
                  AzureService.send("cockpit").then((data)=>{
                      let groupedData = this.groupBy(data.value, obj => obj.definition.id)
                      this.createChartObjects(groupedData)

                  });

});

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

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

请注意以下几点:-

  1. 在LINQ以上,t.active == true仅是在需要时进行某些条件设置的示例。

  2. 请注意,在上面的LInQ查询中,请始终像在
    中一样使用AsEnumerable()。 Linq query.exmaple(var Query =(从dbContext.Employee.AsEnumerable()中的t开始)的第一个文件

  3. Descendants(“ Root ”)。Descendants(“ Name ”),这里Root应该是与XML匹配的Element,在Root下,有Name元素,这就是我们为什么写 Descendants(“ Root ”)。Descendants(“ Name ”)

  4. 对于任何进一步的澄清,您可以通过danish.eggericx@gmail.com

  5. 与我联系。