user2729272
user2729272

Reputation: 359

How to select specific XML node in c#?

XML,

 <A>
    <B  id="ABC">
      <C name="A" />
      <C name="B" />
      <C name="C" />
      <C name="G" />
    </B>
    <B id="ZYZ">
      <C name="1" />
      <C name="2" />
      <C name="3" />
      <C name="4" />
    </B>
  </A>

I Need to select only <C> nodes and assign to a variable.

I'm using following c# code which is not working,

var asdf = c.Elements("C");

asdf should contain ,

<C name="A" />
<C name="B" />
<C name="C" />
<C name="G" />
<C name="1" />
<C name="2" />
<C name="3" />
<C name="4" />

Any help appreciated!

Upvotes: 0

Views: 90

Answers (2)

Daniele Casiello
Daniele Casiello

Reputation: 21

this run:

XElement x = XElement.Parse("your_xml_string");

var asdf=x.Elements("B").Elements("C");

Upvotes: 2

Habib
Habib

Reputation: 223392

You need Descendants like:

var cNodes = document.Descendants("C");

For output:

foreach (var item in cNodes)
{
    Console.WriteLine(item);
}

You will get:

<C name="A" />
<C name="B" />
<C name="C" />
<C name="G" />
<C name="1" />
<C name="2" />
<C name="3" />
<C name="4" />

Upvotes: 2

Related Questions