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
  • 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Checkbox and ListView in Android Layout 4 56
Weekend adv creator 3 14
custom annotations 9 33
how to see all occupied ports on windows 10 laptop 15 26
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
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:

864 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now