Search code examples
androidxmlpullparser

XMLPullparser getEventType returns 0 always


XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
pullParserFactory.setNamespaceAware(true);
XmlPullParser parser = pullParserFactory.newPullParser();
parser.setInput(new StringReader(xmlResponse.replace("&","&")));
int eventType = parser.getEventType();

In the event type i always get 0 only and looping in while. my Xml Response is

  <ResponseCode>00</ResponseCode>
  <ResponseMessage>Success</ResponseMessage>
  <CategoryCount>10</CategoryCount>
  <CategoryMaster>
    <CategoryId>001</CategoryId>
    <CategoryFullName>BreakFast</CategoryFullName>
    <CategoryShortName>Break</CategoryShortName>
    <SubCategoryMaster>
      <SubCategoryId>007</SubCategoryId>
      <SubCategoryFullName>Idiyappam</SubCategoryFullName>
      <SubCategoryShortName>idi</SubCategoryShortName>
      <price>25.00</price>
    </SubCategoryMaster>
  </CategoryMaster>

please advice me


Solution

  • Use this way.

      XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
        pullParserFactory.setNamespaceAware(true);
        XmlPullParser parser = pullParserFactory.newPullParser();
    
    parser.setInput(new StringReader(xmlResponse.replace("&","&amp;")));
    int eventType = parser.getEventType();
    while (eventType != XmlPullParser.END_DOCUMENT) {
                if(eventType == XmlPullParser.START_DOCUMENT) {
                    System.out.println("Start document");
                } else if(eventType == XmlPullParser.START_TAG) {
                    System.out.println("Start tag "+parser.getName());
                } else if(eventType == XmlPullParser.END_TAG) {
                    System.out.println("End tag "+parser.getName());
                } else if(eventType == XmlPullParser.TEXT) {
                    System.out.println("Text "+parser.getText());
                }
                eventType = parser.next();
            }