PROGRAMANDO EM ASP.NET

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Cortando String XML

por Mauricio Junior em 1/1/2011 0

        Olá pessoal,hoje gostaria de publicar e mostrar, apenas para registro, como funciona cortaruma string XML e retornar todos os dados de uma tag, mesmo que tenha sidorepetida.

 

Requisito:

Linguagem C#.NET

Plataforma:Windows Forms ou Web Forms

Framework: .NET3.5

Ferramenta dedesenvolvimento: Visual Studio .NET 2008

 

            Pessoal, mesmo desenvolvendo com alinguagem, ferramenta e framework acima citados, você pode colocar o método doartigo em qualquer framework ou ferramenta de desenvolvimento anterior a 2008,que vai funcionar perfeitamente.

 

Objetivo

            Qual o objetivo do artigo? Éfacilitar ao desenvolvedor cortar string em XML, e trazer apenas a tagesperada, mesmo que sejam repetidos; os dados serão trazidos e acoplados. Porexemplo: (Cod 1.1)

 

 

<principal>

   <cliente>

       <nome>teste</nome>

       <data>12/02/2009</data>

   </cliente>

   <sistema>

       <versao>1.2</versao>

       <codigo>2A</codigo>

   </sistema>

   <cliente>

       <nome>teste 2</nome>

       <data>12/02/2010</data>

   </cliente>

   

Code 1.1

 

            Caso você tenha um XML gravado nobanco de dados e em certo momento, retorna ele em tela, só que é necessárioapenas pegar a tag <cliente>, todas as tags mesmo se estiver repetida emlugares separados.

            Então, melhor usar um métodoespecífico e simples, mas que tomou um pouco de tempo no desenvolvimentocorreto.

 

Código

 

        /// <summary>

        /// Método que corta a string dinâmicamente

        /// Retorna apenas a string, se tiver mais que uma, ele já faz o loop

        /// automaticamente.

        /// </summary>

        /// <param name="result">string</param>

        /// <param name="tagInicio">strnig</param>

        /// <param name="tagFim">string</param>

        /// <returns>String</returns>

        private String CortarString(string result, string tagInicio, string tagFim)

        {

            //retorna essa variavel final

            string resultadoFinal = "";

 

            int posicaoinicio = result.IndexOf(tagInicio);

            int posicaofim = result.IndexOf(tagFim);

 

            if (posicaoinicio > -1 && posicaofim > -1)

            {

                posicaofim += tagFim.Length;

 

                if (posicaoinicio > posicaofim)

                    posicaofim = posicaoinicio - posicaofim;

                else

                    posicaofim = posicaofim - posicaoinicio;

 

                string resultado = result.Substring(posicaoinicio, posicaofim);

                resultadoFinal += resultado;

 

                //corta a tag

                result = result.Replace(resultado, "");

 

                //se tiver a tag ele busca novamente chamando o método

                if (result.IndexOf(tagInicio) > 0)

                    resultadoFinal += CortarString(result, tagInicio, tagFim);

            }

            else

                resultadoFinal = "";

 

            return resultadoFinal;

        }

Code 1.2

 

            No [Code 1.2] mostro o método quecorta string XML corretamente. Pra isso basta enviar a string toda e a taginicial e tag final. Code 1.3

 

 

String resultadoFinal = CortarString(string result, string tagInicio, string tagFim)

 

Code 1.3

 

            Comofalado no exemplo [Code 1.1], imagine que eu queira cortar a tag chamada <cliente>. Para isso, armazenotodo o meu retorno em uma variável string e passo para o método e as tags quepreciso dos dados. Code 1.4

 

 

String result = string resultado = "<NomeDocumentos112><Tamanho>097</Tamanho><TipoRegistro>112</TipoRegistro><Nome>teste</Nome><DataNascimento>00000000</DataNascimento><CPF>12345678900</CPF><RG>123456</RG><OutroDocumento>1</OutroDocumento></NomeDocumentos112><ConsultasAnteriores125><Tamanho>064</Tamanho><TipoRegistro>125</TipoRegistro><TipoCredito>CH</TipoCredito><DataCredito>24022010</DataCredito><Moeda/><Valor>00000000000</Valor><Informante>CODIGODETESTE</Informante></ConsultasAnteriores125><Cliente><Tamanho>104</Tamanho><TipoRegistro>211</TipoRegistro><TipoOcorrencia>1</TipoOcorrencia><TipoDocumento>1</TipoDocumento><NumeroDocumento>00000012413895</NumeroDocumento><Banco>237</Banco><Agencia>0099</Agencia><ContaCorrente>104</ContaCorrente><Cheque>211</Cheque><Alinea>21</Alinea><DataOcorrencia>12082009</DataOcorrencia><DataDisponibilizacao>25082009</DataDisponibilizacao><Informante>CASABAHIACOMERCIALLTDA</Informante><Indicador>4</Indicador></Cliente><Cliente><Tamanho>104</Tamanho><TipoRegistro>211</TipoRegistro><TipoOcorrencia>1</TipoOcorrencia><TipoDocumento>1</TipoDocumento><NumeroDocumento>00000901064823</NumeroDocumento><Banco>237</Banco><Agencia>0099</Agencia><ContaCorrente>104</ContaCorrente><Cheque>211</Cheque><Alinea>28</Alinea><DataOcorrencia>01012006</DataOcorrencia><DataDisponibilizacao>08082006</DataDisponibilizacao><Informante>RJ-MTIEMPRESADETESTEDOUNPJCADAS</Informante><Indicador>4</Indicador></Cliente>";

 

String resultadoFinal = CortarString(string result, “<cliente>”, “</cliente>”)

 

Code 1.5

 

            Oresultado final será todo o conjunto de dados dentro da tag <cliente> doseu xml armazenada em sua variável resultadoFinal.Funciona perfeitamente para quem gostaria de cortar arquivo XML.

            Bom, eu fico por aqui e qualquerdúvida, pode entrar em contato pelo site.

 

Mauricio Junior

www.mauriciojunior.org

blog.mauriciojunior.org

 

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Windows Phone 7.1 Mango
IsDecimal
Usando o Flash para Desenvolver Game no Microsoft XNA Developer
Código fonte aberto
Clique ENTER usando C#.NET
Gravando Erros com Exception - Parte I
Sistema de Login – Parte IV
Fazer Log, precisa ou não precisa?
Desktop Linux Ubuntu
Conecte - Os games
LG Optimus Black
Dica para Auto Completar Código
Importar projetos antigos para o Visual Studio 2010
Event Log Parte II - Visual Studio.NET 2005
Vírus - Full video Pamela Anderson
Criando e Lendo Cookie
Dica: SetFocus diferente
Calcular Média de Combustível
Criando Splash - Com Efeito
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Pagamento via celular
Sistema de Login com ASP 3.0 usando três camadas – Parte I
ASP.NET 4.0 and Visual Studio 2010 Web Development Beta 2 Overview
MSDN Media Center - download de vídeos
Nem tudo é o que parece!
CRIANDO MENU DINÂMICO COM C#.NET Passo 1
Armazenando dados no ViewState – Parte I
Trabalhando bem com o “using”
Ajax com C#.NET (parte 1)
Ler RSS usando o Visual Studio.NET 2005
Windows Phone 7 Action Pack - Vídeo Tutorial
Como fazer uma enquete - parte 1
Vídeo - Criando um WebBrowser
Transmitir Arquivo com Segurança
ASP.MENU com Compatibilidade




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....

A Era dos UltraBooks

Os modelos mais dos Ultrabooks...




NETITC