Получение всегда 0 в XMLPullParser, в то время как веб-сервис содержит значение как float - PullRequest
1 голос
/ 09 мая 2011

У меня есть веб-сервис для оценки, он возвращает <Score>float</Score>, а при извлечении этого с помощью XML-парсера всегда возвращается ноль [0].Понятия не имею.Мой код ниже:

public static String parse(InputStream is) 
        {
            XmlPullParserFactory factory = null;
            try {
                factory = XmlPullParserFactory.newInstance();
            } catch (XmlPullParserException e1) {
                // TODO Auto-generated catch block
                Log.v(TAG,"Exception in Factory pull");
            }

            factory.setNamespaceAware(true);

            XmlPullParser parser = null;

            try {
                parser = factory.newPullParser();
            } catch (XmlPullParserException e1) {
                Log.v(TAG,"Exception in parser pull");
            }

            String rating = "";
            //XmlPullParser parser = Xml.newPullParser();
            Log.v("XMLParser:", parser.toString());
            try 
            {
                // auto-detect the encoding from the stream
                parser.setInput(is, null);
                int eventType = parser.getEventType();
                //Message currentMessage = null;
                boolean done = false;
                while (eventType != XmlPullParser.END_DOCUMENT && !done)
                {
                    String name = null;
                    switch (eventType)
                    {
                        case XmlPullParser.START_DOCUMENT:
                            break;
                        case XmlPullParser.START_TAG:
                            name = parser.getName();
                            if (name.equalsIgnoreCase("Score"))
                            {
                                rating = parser.nextText();
                                Log.v("Rating", rating);
                                done = true;
                            }   
                            break;
                        case XmlPullParser.TEXT:
                            Log.v(TAG,"Node value:"+parser.getText());
                        case XmlPullParser.END_TAG:
                            break;
                    }
                    eventType = parser.next();
                }
            } 
            catch (Exception e) 
            {
                rating = "0";
            }
            return rating;

        }

Мой веб-сервис xml:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetRatingDResponse xmlns="http://tempuri.org/">
      <GetRatingDResult>
        <Votes>int</Votes>
        <Score>float</Score>
      </GetRatingDResult>
    </GetRatingDResponse>
  </soap:Body>
</soap:Envelope>

Может ли кто-нибудь сказать мне, что не так с этим кодом?

...