Как правильно хранить и обрабатывать данные на C#
Если речь идет о параметрах приложения, почему бы не воспользоваться стандартным механизмом конфигурационных файлов .net? 
В сложных случаях, когда параметров много и они разделены на логические группы, можно создать несколько configuration section. 
А в простых сценариях, если вы не боитесь запутаться в именах конфигурационных параметров, можно обойтись просто ConfigurationManager.var lastLogin = config.AppSettings["LastLogin"];
Это стандартный механизм дотнета, не нужно париться с созданием кастомного файла, структурой, проверками.
System.Xml.Serialization.XmlSerializer reader = 
        new System.Xml.Serialization.XmlSerializer(typeof(User));
    System.IO.StreamReader file = new System.IO.StreamReader(
        @"c:\temp\userData.xml");
    UserData user= new UserData();
    user = (UserData)reader.Deserialize(file);
if(user!=null)
    Console.WriteLine(user.lastlogin); // тут будет доступ к полю lastlogin объекта user
в программе создайте класс объекта типа тогоpublic class UserData
{
     public string userlogin{get;set;}
}
Если вам нужно доступ такой как вы писали выше - используйте что то типа того:XmlNodeList elemList = doc.GetElementsByTagName("lastlogin");
    for (int i = 0; i < elemList.Count; i++)
    {
        Console.WriteLine(elemList[i].InnerXml);
    }