Example #1
0
        public ActionResult LerXml()
        {
            try
            {
                XmlReader reader = XmlReader.Create(@"C:\Exemplo.xml");

                while (reader.Read()) /// Enquanto houver elementos a serem lidos. Cada iteração corresponde ao registro de um paciente.
                {
                    SGPS.Models.paciente registro = new SGPS.Models.paciente();

                    /// Ao chegar no elemento "nome" (primeiro atributo de um paciente), iniciar a leitura dos dados para gravação no BD
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "nome"))
                    {
                        registro.strNome = reader.ReadString();
                        reader.Read();
                        reader.Read();
                        registro.strCategoria = reader.ReadString();
                        reader.Read();
                        reader.Read();
                        registro.strDataDeNascimento = reader.ReadString();
                        reader.Read();
                        reader.Read();
                        registro.strCpf = reader.ReadString();
                        reader.Read();
                        reader.Read();
                        registro.strEndereco = reader.ReadString();
                        reader.Read();
                        reader.Read();
                        registro.strTelefone = reader.ReadString();

                        //registro.strDataDeNascimento = DateTime.Parse(strDataDeNascimento.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat));

                        /// Adicionar o registro lido ao BD
                        ctx.AddTopacientes(registro);
                        ctx.SaveChanges(); /// Commit
                    }
                }

                ViewData["Message"] = "Arquivo carregado com sucesso!";
                return(Redirect("Index"));
            }
            catch (Exception e)
            {
                ViewData["Message"] = e.Message.ToString();
                return(Redirect("Index"));
            }
        }