-3

I am experimenting the features of linq to xml, while trying to simulate the method XElement.Descendants("Users"), I have the following code; my question is why the second line

var usersElement = xElement.Element("Users"); // this is returning null

is returnning null? here's the full code wrapped in main()

  XElement xElement = XElement.Load("Users.xml");
        var usersElement = xElement.Element("Users"); // this is returning null
        var userElements = usersElement.Elements();         

Here's the Users.xml:

<Users>
    <User name="Surender" type="Senior Developer" />
    <User name="Parvind" type="AVP" />
    <User name="Adam" type="Manager, Vice President" />
    <User name="Dongming" type="Junior Developer" />
</Users>
Dongming Yan
  • 123
  • 9
  • Replace: `XElement xElement = XElement.Load("Users.xml");` with `XDocument xdoc = XDocument.Load(@"C:\Users.xml");` – Maciej Los Apr 12 '15 at 09:46

1 Answers1

4

When you use XElement.Load it returns the root element.You are searching for your root under the root,ofcourse that's not going to work.

xElement is Users.You just need xElement.Elements("User"); to get all User elements.

Selman Genç
  • 100,147
  • 13
  • 119
  • 184