Jump to content

Pesquisar numa string


jarvas
 Share

Recommended Posts

Boas pessoal...

Eu tenho a seguinte string em xml:

"<TBL>"+
                        "<Cliente>"+
                            "<ID>100</ID>"+
                            "<Nome>XPTO1</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                            "<ID>101</ID>"+
                            "<Nome>XPTO2</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                            "<ID>102</ID>"+
                            "<Nome>XPTO3</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                             "<ID>103</ID>"+
                             "<Nome>XPTO4</Nome>"+
                        "</Cliente>"+
                      "</TBL>";

E pretendo separar esta string por pela tag <Cliente>, já tentei utilizar o StringTokenizer, separar por <Cliente>, mas não deu nada de jeito...

Alguém tem alguma sugestão??

Cumprimentos

Link to comment
Share on other sites

Mas queres ler essa informação em que linguagem? Java?

É que existem formas mais simples e directas de o fazer, depende da linguagem de programação.

Pois é possível mas como sou fã de regex e como praticamente todas as linguagens tem suporte dai ter sugerido regex xD

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Pois é possível mas como sou fã de regex e como praticamente todas as linguagens tem suporte dai ter sugerido regex xD

Sim, também dá com regex, claro, mas normalmente é bem mais lento do que utilizando outros métodos.

É claro que se forem coisas pequenas não é significativo.

Link to comment
Share on other sites

Em java como referi tens Sax, Dom, JaxB e Xpath.

JaxB até se adaptava bem ao teu caso mas acho puramente desnecessário, regex serve perfeitamente não vale a pena estar a criar um parser até porque neste caso por maior que seja o XML como a estrutura é tão simples a performance é ela por ela.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Olá não sei se já consegui resolver o problema, se não

deixo aqui a solução com regxe.

Abraço

import java.util.regex.Matcher;
import java.util.regex.Pattern;

...

        String str = "<TBL>"
                        "<Cliente>"+
                            "<ID>100</ID>"+
                            "<Nome>XPTO1</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                            "<ID>101</ID>"+
                            "<Nome>XPTO2</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                            "<ID>102</ID>"+
                            "<Nome>XPTO3</Nome>"+
                        "</Cliente>"+
                        "<Cliente>"+
                             "<ID>103</ID>"+
                             "<Nome>XPTO4</Nome>"+
                        "</Cliente>"+
                      "</TBL>";

        Pattern p = Pattern.compile("<Cliente>(.*?)</Cliente>");
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(1));
        }
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.