LINQ to read XML (C#)

Posted by aximili on Stack Overflow See other posts from Stack Overflow or by aximili
Published on 2009-03-22T04:48:24Z Indexed on 2010/05/11 7:14 UTC
Read the original article Hit count: 594

Filed under:
|
|
|

I got this XML file

<root>
	<level1 name="A">
		<level2 name="A1" />
		<level2 name="A2" />
	</level1>
	<level1 name="B">
		<level2 name="B1" />
		<level2 name="B2" />
	</level1>
	<level1 name="C" />
</root>

Could someone give me a C# code using LINQ, the simplest way to print this result:
(Note the extra space if it is a level2 node)

A
  A1
  A2
B
  B1
  B2
C

Currently I got this code

XDocument xdoc = XDocument.Load("data.xml"));
var lv1s = from lv1 in xdoc.Descendants("level1")
		   select lv1.Attribute("name").Value;

foreach (var lv1 in lv1s)
{
	result.AppendLine(lv1);

	var lv2s = from lv2 in xdoc...???
}

Thank you!

© Stack Overflow or respective owner

Related posts about LINQ

Related posts about c#