Inquiridor
ler arquivo xml e gravar no banco de dados

Pergunta
-
Olá galera, estou com uma dificuldade para ler um arquivo xml pelo Web Service.
Seguinte tenho um projeto na empresa onde deverei receber um arquivo xml e salvar os dados desse arquivo em uma base de dados (node por node).
Estava buscando na internet como fazer isso mas não encontrei artigo que ajude, posso estar buscando de forma errada.
Alguém sabe como fazer o Web Service receber um arquivo xml e salvar os dado na tabela ?
Desde já agradeço pela atenção e ajuda !
Todas as Respostas
-
-
Olá amigo, tudo bem!?
Seguinte eu to estudando tratamento de XML também, e sei que a classe XmlReader do namespace System.Xml pode resolver seu problema. Segue um exemplo:
Considere o XML:
<?xml version="1.0" encoding="utf-8"?> <Cliente> <Idade>25</Idade> <Nome>Raimundo dos Santos Santana</Nome> </Cliente>
O código que mapeia este XML:
class Program { public class Cliente { public int idade; public string nome; } static void Main(string[] args) { //cria uma instancia de xmlreader ja recebendo seu arquivo xml XmlReader reader = XmlReader.Create("teste.xml"); Cliente c = new Cliente(); while (reader.Read()) { //verifica se o node é válido e se o seu nome é idade if (reader.NodeType == XmlNodeType.Element && reader.Name == "Idade") { //armazena o valor do node idade no objeto cliente c.idade = reader.ReadElementContentAsInt(); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "Nome") { c.nome = reader.ReadElementContentAsString(); } } Console.WriteLine("idade: {0} - Nome: {1}",c.idade,c.nome); Console.ReadKey(); //imprime Idade: 25 - Nome: Raimundo Santana } } }
A partir disso você consegue incluir no seu banco a partir da conexão padrão do seu projeto.
- Editado Rogério dos Santos Fernandes segunda-feira, 30 de março de 2015 19:19 Incluído comentários no código
- Sugerido como Resposta Mr. GMSOFT terça-feira, 31 de março de 2015 11:38
-
Olá amigo, tudo bem!?
Seguinte eu to estudando tratamento de XML também, e sei que a classe XmlReader do namespace System.Xml pode resolver seu problema. Segue um exemplo:
Considere o XML:
<?xml version="1.0" encoding="utf-8"?> <Cliente> <Idade>25</Idade> <Nome>Raimundo dos Santos Santana</Nome> </Cliente>
O código que mapeia este XML:
class Program { public class Cliente { public int idade; public string nome; } static void Main(string[] args) { //cria uma instancia de xmlreader ja recebendo seu arquivo xml XmlReader reader = XmlReader.Create("teste.xml"); Cliente c = new Cliente(); while (reader.Read()) { //verifica se o node é válido e se o seu nome é idade if (reader.NodeType == XmlNodeType.Element && reader.Name == "Idade") { //armazena o valor do node idade no objeto cliente c.idade = reader.ReadElementContentAsInt(); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "Nome") { c.nome = reader.ReadElementContentAsString(); } } Console.WriteLine("idade: {0} - Nome: {1}",c.idade,c.nome); Console.ReadKey(); //imprime Idade: 25 - Nome: Raimundo Santana } } }
A partir disso você consegue incluir no seu banco a partir da conexão padrão do seu projeto.
Muito, obrigado, ajudou bastante.
Mas se eu tiver um nó que se repete varias vezes, como faria essa estrutura de repetição?
-
-