---
title: "XmlPullParser in Android"  
description: "Hi all here we are going to implement XmlPullParser in Android"  
author: "Manoj Pandey"  
published: 2015-02-18  
updated: 2019-09-07  
canonical: https://www.mindstick.com/articles/1588/xmlpullparser-in-android  
category: "android"  
tags: ["xml", "android", "xml parsing"]  
reading_time: 4 minutes  

---

# XmlPullParser in Android

Previously, we learn about SAX parser in Android. Now we see how to use XmlPullParser in Android.\

There are three types of Android XML parsers – DOM, SAX and XmlPullParser. You can use DOM and SAX parser API which are provided by [Java platform](https://www.mindstick.com/interview/22895/what-is-the-main-difference-between-java-platform-and-other-platforms). In addition to these two parsers, Android provides XmlPullParser which is similar to StAX parser and is also the recommended [XML parsing](https://www.mindstick.com/forum/159719/xml-parsing-using-php) in Android. This Android XML parsing example explains how to parse a simple XML using Android XmlPullParser.

Android recommends to use XmlPullParser to parse the [xml file](https://www.mindstick.com/articles/75/how-to-read-and-write-xml-file-through-c-sharp) than SAX and DOM because it is fast.

The org.xmlpull.v1.XmlPullParser [interface](https://www.mindstick.com/articles/12036/interface-in-c-sharp) provides the [functionality](https://www.mindstick.com/blog/136/using-watermark-functionality-in-textbox-by-jquery) to parse the XML [document](https://www.mindstick.com/articles/328642/what-to-consider-while-choosing-a-software-documentation-tool) using XmlPullParser.

1. Create an Android Project

2. Add xml file inside assets folder and add following code

```
<?xml version="1.0"   encoding="UTF-8"?><employees>    <employee>        <id>1</id>        <name>Adney</name>        <salary>50000</salary>          </employee>    <employee>        <id>2</id>        <name>Kaarle</name>        <salary>60000</salary>      </employee>     <employee>        <id>3</id>        <name>Mike</name>        <salary>60000</salary>      </employee></employees>
```

3. Add [listview](https://www.mindstick.com/articles/12744/listview-in-android) in activity_main.xml

```
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >     <ListView          android:id="@+id/listView1"          android:layout_width="match_parent"          android:layout_height="wrap_content"   >    </ListView> </RelativeLayout>
```

Add been class as name [Employee](https://www.mindstick.com/articles/178134/how-to-write-the-best-welcome-letter-for-new-employees)

```
package com.example.xmlpullparsing; // Been class of listpublic class Employee {     private int id;     private String name;     private String salary;      public int getId() {           return id;     }      public void setId(int id) {           this.id = id;     }      public String getName() {           return name;     }      public void setName(String name) {           this.name = name;     }      public String getSalary() {           return salary;     }      public void setSalary(String salary) {           this.salary = salary;     }      @Override     public String toString() {           return "\n  Name= " + name + "\n Salary= " + salary;     }}
```

Create XmlPullParserHandler class which parse data from xml file

```
package com.example.xmlpullparsing; import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import  org.xmlpull.v1.XmlPullParserException;import  org.xmlpull.v1.XmlPullParserFactory; public class XmlPullParserHandler {     private List<Employee> employees = new ArrayList<Employee>();     private Employee employee;     private String text;      public List<Employee>  getEmployees() {           return employees;     }      public List<Employee>  parse(InputStream is) {           try {                // XmlPullParserFactory class is used to create  implementations of                // XML Pull Parser defined in XMPULL V1 API.                XmlPullParserFactory factory =  XmlPullParserFactory.newInstance();                // setNamespaceAware specifies that the parser produced by  this                // factory will provide                // support for XML namespaces.                factory.setNamespaceAware(true);                // Creates a new instance of a XML Pull Parser using the  currently                // configured factory features.                XmlPullParser parser = factory.newPullParser();                 parser.setInput(is, null);                 int eventType =  parser.getEventType();                while (eventType != XmlPullParser.END_DOCUMENT) {                     String tagname = parser.getName();                     switch (eventType) {                     case XmlPullParser.START_TAG:                           if (tagname.equalsIgnoreCase("employee")) {                                // create a new instance of employee                                employee = new Employee();                           }                           break;                      case XmlPullParser.TEXT:                           text  = parser.getText();                           break;                      case XmlPullParser.END_TAG:                           if (tagname.equalsIgnoreCase("employee")) {                                // add employee object to list                                employees.add(employee);                           } else if (tagname.equalsIgnoreCase("id")) {                                employee.setId(Integer.parseInt(text));                           } else if (tagname.equalsIgnoreCase("name")) {                                employee.setName(text);                           } else if (tagname.equalsIgnoreCase("salary")) {                                employee.setSalary(text);                           }                           break;                      default:                           break;                     }                     eventType = parser.next();                }            } catch (XmlPullParserException e) {                e.printStackTrace();           } catch (IOException e) {                e.printStackTrace();           }            return employees;     }}
```

Now add following code in MainActivity.class

```
  package  com.example.xmlpullparsing; import  java.io.IOException;import  java.io.InputStream;import  java.util.List; import  android.os.Bundle;import  android.app.Activity;import  android.view.Menu;import  android.widget.ArrayAdapter;import  android.widget.ListView; public class  MainActivity extends Activity {      @Override     protected void onCreate(Bundle  savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          // find data  from xml layout          ListView listView = (ListView)  findViewById(R.id.listView1);           List<Employee> employees =  null;          try {              XmlPullParserHandler parser =  new XmlPullParserHandler();              // A readable source of bytes.              InputStream is =  getAssets().open("employees.xml");              employees = parser.parse(is);               //  bind data in adapter              ArrayAdapter<Employee>  adapter = new ArrayAdapter<Employee>(this,                        android.R.layout.simple_list_item_1,  employees);              // set adapter in listview              listView.setAdapter(adapter);           } catch (IOException e) {           }      }      @Override     public boolean onCreateOptionsMenu(Menu  menu) {          // Inflate the menu; this adds  items to the action bar if it is present.          getMenuInflater().inflate(R.menu.activity_main,  menu);          return true;     } }
```

Now run [your application](https://answers.mindstick.com/qa/95487/how-do-you-troubleshoot-when-your-application-link-is-not-responding)

\
![XmlPullParser in Android](https://www.mindstick.com/mindstickarticle/4fac6e51-90b3-4bdc-b8ea-56df916f63a3/images/95c2cd3e-d516-4abb-8410-838388cdc14c.png)

---

Original Source: https://www.mindstick.com/articles/1588/xmlpullparser-in-android

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
