Потомки Item, имеющие одинаковые идентификаторы, делают это трудным для Linq-to-XML (с точки зрения раздувания кода), но не являются невозможными.this
XDocument document = XDocument.Parse(xml);
XNamespace ns = "http://MySample.Sample.com/Sample.xsd";
var sampleUsers = from item in document.Root.Element(ns + "Data").Element(ns + "List").Elements(ns + "Item")
select new SampleUser
{
FirstName = item.Elements(ns + "Value").First(v => v.Attribute("Name").Value.Equals("FirstName")).Attribute("Value").Value,
LastName = item.Elements(ns + "Value").First(v => v.Attribute("Name").Value.Equals("LastName")).Attribute("Value").Value
};
Было бы намного лучше, если бы XML был похож на
<Item>
<FirstName>Bob</FirstName>
<LastName>Smith</LastName>
</Item>
Возможно, вы сможете исследовать преобразование, чтобы действительно попасть туда.