var records = (from datafields in xd.Descendants("record") select datafields); foreach (XElement e in records) { var data = (from datafield in e.Descendants("datafield") where (datafield.Attribute("tag").Value == "500") select datafield).Skip(0).First(); Console.WriteLine(data.Value); }