XmlPullParser does not read a value

Posted on 2010-09-17
Last Modified: 2013-11-23
Hi there,

I posted a question yesterday of how to read a XML stream and got the below answer which does what I asked. Unfortunately I asked the question wrong. I can find the "Success" tag in the XML but the main thing is to read it's value which is "true" or "false".  It simply does not read the content somehow... (I addedd the "bold" part to try it)

      URL text = new URL("");
      XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
      XmlPullParser parser = parserCreator.newPullParser();
      parser.setInput(text.openStream(), null);
      int eventType = parser.getEventType();
      boolean inSuccessTag = false;
      while (eventType != XmlPullParser.END_DOCUMENT)
       if (eventType == XmlPullParser.START_TAG)
       if(parser.getName().equals("Success")&& parser.getText()=="true")       inSuccessTag = true;
       else if (eventType ==XmlPullParser.END_TAG)
       inSuccessTag = false;
       else if (eventType ==XmlPullParser.TEXT)
       if (inSuccessTag)
             Log.d("","Found SUCCESS tag");
           Log.d("","The authvalue SUCCESS is"+parser.getText());
       eventType =;
                                catch (Exception e)
                                    Log.e("Net", "Error in network call", e);

Question by:nikomanek
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 59

Expert Comment

by:Kevin Cross
ID: 33706709
Think the issue may be here:
  else if (eventType ==XmlPullParser.END_TAG)
       inSuccessTag = false;

Since you are in a loop and the parser has to read the START_TAG and END_TAG, what will happen is that you will set success to value from the tag, then no matter what you are going to set the value back to false when the end of the tag is read.
LVL 35

Accepted Solution

mccarl earned 500 total points
ID: 33715467
Firstly, just letting you know that EE has an 'ask a related question' functionality that would have been good here so that I (and others following the last question) get a notification of the new question. I only stumbled upon this question by accident.

Also, while we are on EE features, you should use the option to attach code rather than just pasting it in the body of the question. That way it gives line number and nice formatting, etc.

Anyway, no the code that you have added will not work at all. You are trying to do 2 things at the one time. You can't test for the Succcess tag and get the text WITHIN the tag at the same time. They are two different events that will happen in two different iterations through the loop.

>>  I can find the "Success" tag in the XML but the main thing is to read it's value which is "true" or "false".
Did the code that I posted not include the value of the Success tag (i.e. the true or false part) in the log message?

>> Log.d("","The authvalue SUCCESS is"+parser.getText());
The above line in the code should have printed the value to the log (the parser.getText() is what should get the "true" or "false", or whatever is in the file)

LVL 59

Expert Comment

by:Kevin Cross
ID: 33717239

Thanks for chiming in.

I see what I wasn't catching due to the formatting of the code above (as you mentioned not being in a code block) is that the  if (inSuccessTag) { ... } test is also in the loop -- it had appeared to me as being outside the loop, hence my comment -- I see from your original code, you can setting flag on start of tag, then reading text, then on close of tag resetting the flag for the next iteration through loop.  I see now what was added was the check of parset.getText() in the start tag check.

Nice catch.  I will leave this in your capable hands.


Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Update Samsung Galaxy S3 to Android 5 or 6 5 58
ejb example issues 3 55
jsp insert to database example 2 65
how to debug htl and js pages 8 58
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This video is in connection to the article "The case of a missing mobile phone (". It will help one to understand clearly the steps to track a lost android phone.

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question