Ajuda em SaxParser

2 respostas
N

Olá a todos,

Estou tentando fazer um parser para xml usando o SAXparser. Quando o SAX começa a ler uma tag xml, usa o método startElement, mas no meu caso não entra neste meu método.

No entanto, colocando uma linha para mostrar para o ecrã o resultado parcial do parser através do método characters, verifico que não entra nos ifs que coloquei, para validar a tag.

Alguém me pode dar uma ajuda?

Valeu

Vou postar o código:

public static void main(String[] args) {
        try {

            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser saxParser = factory.newSAXParser();

            DefaultHandler handler = new DefaultHandler() {

                boolean id = false;
                boolean nome = false;
                boolean user = false;

                public void startElement(String uri, String localName, String qName, Attributes attributes)
                        throws SAXException {
                  System.out.println("TAG_INICIAL :" + qName);

                    if (qName.equalsIgnoreCase("ID")) {
                        id = true;
                    }

                    if (qName.equalsIgnoreCase("NOME")) {
                        nome = true;
                    }

                    if (qName.equalsIgnoreCase("USER")) {
                        user = true;
                    }

                }

                @Override
                public void endElement(String uri, String localName, String qName)
                        throws SAXException {
                    System.out.println("TAG :" + qName);
                   
                }

                @Override
                public void characters(char ch[], int start, int length)
                        throws SAXException {

                    System.out.println(new String(ch, start, length));
                    String valoractual = new String(ch, start, length);

                 
                    if (id) {
                        System.out.println("ID : "
                                + new String(ch, start, length));
                        id = false;
                    }

                    if (nome) {
                        System.out.println("Nome : "
                                + new String(ch, start, length));
                        nome = false;
                    }

                    if (user) {
                        System.out.println("Username : "
                                + new String(ch, start, length));
                        user = false;
                    }


                }
            };

            File file = new File("users.xml");
            InputStream inputStream = new FileInputStream(file);
            Reader reader = new InputStreamReader(inputStream, "UTF-8");

            InputSource is = new InputSource(reader);
            is.setEncoding("UTF-8");

            saxParser.parse(is, handler);


        } catch (Exception e) {
            System.out.println("ERRO:" + e.toString());
        }

    }

2 Respostas

N

Ninguém teve algum erro parecido no SAX?

N

Apesar de não ter tido qualquer tipo de resposta ao meu post.

Deixo aqui como resolvi o problema - Faltava-me um import “import org.xml.sax.Attributes;”

Criado 19 de julho de 2011
Ultima resposta 26 de jul. de 2011
Respostas 2
Participantes 1