Here is the code that can retrieve name and value of the optionset value fromt he xml you posted
var attributeXml = " <attribute PhysicalName=\"featurearea\">" +
" <Type>picklist</Type>" +
" <ValidForCreateApi>1</ValidForCreateApi>" +
" <ValidForUpdateApi>1</ValidForUpdateApi>" +
" <ValidForReadApi>1</ValidForReadApi>" +
" <IsCustomField>1</IsCustomField>" +
" <AttributeTypeId>00000000-0000-0000-00cc-220000000090</AttributeTypeId>" +
" <DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid</DisplayMask>" +
" <Descriptions>" +
" <Description description=\"Feature area of the case\" languagecode=\"1033\" />" +
" </Descriptions>" +
" <ImeMode>auto</ImeMode>" +
" <RequiredLevel>required</RequiredLevel>" +
" <AppDefaultValue>-1</AppDefaultValue>" +
" <options>" +
" <option value=\"3\">" +
" <labels>" +
" <label description=\"Aaaa\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"4\">" +
" <labels>" +
" <label description=\"Audio\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"17\">" +
" <labels>" +
" <label description=\"Certification\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"10\">" +
" <labels>" +
" <label description=\"Compiler/Linker\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"5\">" +
" <labels>" +
" <label description=\"Config\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"11\">" +
" <labels>" +
" <label description=\"CPU\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"1\">" +
" <labels>" +
" <label description=\"Graphics\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"15\">" +
" <labels>" +
" <label description=\"Kinect\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"16\">" +
" <labels>" +
" <label description=\"Networking\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"12\">" +
" <labels>" +
" <label description=\"System\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"19\">" +
" <labels>" +
" <label description=\"Tools\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"7\">" +
" <labels>" +
" <label description=\"fdfgdg\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"6\">" +
" <labels>" +
" <label description=\"Video\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"13\">" +
" <labels>" +
" <label description=\"Other\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"14\">" +
" <labels>" +
" <label description=\"Deprecated – Value\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"20\">" +
" <labels>" +
" <label description=\"Deprecated – Comp\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"2\">" +
" <labels>" +
" <label description=\"Deprecated – hhhh\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"18\">" +
" <labels>" +
" <label description=\"Deprecated – Pppp\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"9\">" +
" <labels>" +
" <label description=\"Deprecated – Web Services\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" <option value=\"8\">" +
" <labels>" +
" <label description=\"Deprecated – llll\" languagecode=\"1033\" />" +
" </labels>" +
" </option>" +
" </options>" +
" <displaynames>" +
" <displayname description=\"Feature Area\" languagecode=\"1033\" />" +
" </displaynames>" +
" </attribute>";
var element = XElement.Parse(attributeXml).Descendants("option");
var options = from option in element
select new { Vale = option.Attribute("value").Value, Name = option.Element("labels").Elements("label").First<XElement>().Attribute("description").Value };
foreach (var option in options)
{
Console.WriteLine(option.Name + " : " + option.Vale);
}
Console.Read();