Android: Sax Reader, не может извлечь необходимую информацию - PullRequest
0 голосов
/ 20 июля 2011

Я получаю ответ на запрос XML, и мне нужно с ним разобраться. Ответ будет возвращать либо «00», если запрос был принят и учетная запись подтверждена, и «03», если учетная запись недействительна.

В настоящее время Sax Reader возвращает правильную информацию, но я не могу извлечь информацию из считывателя, чтобы сохранить имя пользователя / пароль во внутреннем хранилище телефона.

Код из Sax Reader:

public void inputStreamToString(InputStream is) {
        try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser saxParser = factory.newSAXParser();

            DefaultHandler handler = new DefaultHandler() {

                boolean errorCode = false;

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

                    if (qName.equalsIgnoreCase("ErrorCode")) 
                    {
                        errorCode = true;
                    }
                }

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

                public void characters(char ch[], int start, int length) throws SAXException 
                {
                    if (errorCode) 
                    {
                        System.out.println("ErrorCode : "+ new String(ch, start, length));
                        if (ch.equals(00))
                        {
                            System.out.println("IT WORKS!!!");
                        }
                        errorCode = false;
                    }
                }
            };
            saxParser.parse(is, handler);
        } 
        catch (Exception e) 
        {
            System.out.println("Sax Error");
            e.printStackTrace();
        }       
    }

Как вы можете видеть в открытых пустых символах, он печатает код ошибки, который имеет отношение к ответу. В настоящее время я пытаюсь сделать ch.equals(00) в операторе If, но он не выбирает правильную информацию! Может быть проблема в том, что ch является типом данных char?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 29 июля 2011

Я получил это работает.Вместо использования кодов ошибок «00» и «03».Я использовал длину ответных сообщений «OK» и «Invalid».

...