Usuário com melhor resposta
Varrer xml quando os atributos do arquivo não seguem um padrão.

Pergunta
-
Boa tarde,
Tenho alguns retornos vindos do web service, mas os atributos das tags nem sempre são iguais (segue exemplo).
Preciso setá-los em uma classe para exibir no form, consegui fazer a exibição quando o retorno está em um padrão de tags, se o cliente não possuir algum atributo no seu xml apresenta erro.Sabem como consigo esse retorno não tendo um padrão ?
Se o atributo não existir apresentar o campo em branco "", mas retornar os atributos existentes no xmlSegue exemplos dos xml e do meu código c#
<cliente nome="Jose antonio lima"> <cpf origem="bahia, numero="1234"/> <situacao="REGULAR" data="2015-06-25"/> </cpf> </cliente>
<cliente nome="Joao Paulo Costa" sexo="Masculino" signo="Escorpiao"><cpf origem="Sao Paulo", numero="1234"/><situacao="REGULAR" data="2015-06-25"/></cpf></cliente>
Exemplo classe c#
public Cliente LoadCliente(string xmlCliente) { Cliente cliente = new Cliente(); var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlCliente); var xnCliente = xmlDoc.GetElementsByTagName("Cliente"); foreach (XmlNode xn in xnCliente) { cliente.Nome = xn.Attributes["nome"].Value; cliente.NomeMae = xn.Attributes["nome-mae"].Value; cliente.Sexo = xn.Attributes["sexo"].Value; cliente.RG = xn.Attributes["numero-rg"].Value; cliente.Signo = xn.Attributes["signo"].Value;
Respostas
-
Montei um artigo tempos atrás, com uma classe que facilita este tipo de trabalho. Eu acabei considerando apenas Elements no exemplo, mas vc poderia adaptar para que funcionasse com Attributes:
http://www.devmedia.com.br/utilizando-linq-e-extensions-methods-para-a-leitura-de-arquivos-xml/27149
- Sugerido como Resposta Joel Rodrigues de Lima NetoMVP sexta-feira, 26 de junho de 2015 16:02
- Marcado como Resposta Cristopher C I_ segunda-feira, 29 de junho de 2015 14:50
Todas as Respostas
-
Montei um artigo tempos atrás, com uma classe que facilita este tipo de trabalho. Eu acabei considerando apenas Elements no exemplo, mas vc poderia adaptar para que funcionasse com Attributes:
http://www.devmedia.com.br/utilizando-linq-e-extensions-methods-para-a-leitura-de-arquivos-xml/27149
- Sugerido como Resposta Joel Rodrigues de Lima NetoMVP sexta-feira, 26 de junho de 2015 16:02
- Marcado como Resposta Cristopher C I_ segunda-feira, 29 de junho de 2015 14:50
-