Сначала получите узел из XML, а затем проанализируйте его в перечислении.
const string str = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Document><DocumentId>1</DocumentId><Attachment></Attachment><Metadata><DocumentType>0</DocumentType></Metadata></Document>";
var xml = new XmlDocument();
xml.LoadXml(str);
var node = xml.DocumentElement.SelectSingleNode("/Document/Metadata/DocumentType").InnerText;
DocumentType currentEnum = (DocumentType)Enum.Parse(typeof(DocumentType), node);
int currentEnumId = (int)currentEnum;
ОБНОВЛЕНИЕ на основе комментариев - десериализация xml для объекта с перечислениями
XML
<?xml version="1.0" encoding="utf-8"?>
<Document>
<DocumentId>1</DocumentId>
<Attachment></Attachment>
<Metadata>
<DocumentType>1</DocumentType>
</Metadata>
</Document>
Модели
public class Document
{
public long DocumentId { get; set; }
public Metadata Metadata { get; set; }
}
public class Metadata
{
public string DocumentType { get; set; }
public DocumentType Type
{
get
{
return (DocumentType)Enum.Parse(typeof(DocumentType), DocumentType);
}
}
}
public enum DocumentType
{
DocumentType_A = 0,
DocumentType_B = 1,
DocumentType_C = 2
};
Преобразование XML в объект:
var serializer = new XmlSerializer(typeof(Document));
using (var reader = XmlReader.Create("/Users/brunomartinspro/Desktop/myxml.xml"))
{
Document document = (Document)serializer.Deserialize(reader);
var mySuperType = document.Metadata.Type;
}