Android:Sax Reader,无法提取所需的信息

时间:2011-07-20 12:17:30

标签: android xml equals sax

我收到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();
        }       
    }

正如您在公共无效字符中看到的那样,它会打印出与响应相关的错误代码。我目前正在If语句中尝试ch.equals(00),但它没有找到正确的信息!可能是ch是char数据类型的问题吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。而不是使用'00'和'03'错误代码。我使用了“确定”和“无效”的响应消息的长度。