---
title: "SAX parser in Android"  
description: "In this article I am going to discuss about SAX parser in Android with example."  
author: "Manoj Pandey"  
published: 2015-02-18  
updated: 2019-09-07  
canonical: https://www.mindstick.com/articles/1587/sax-parser-in-android  
category: "android"  
tags: ["xml", "android", "xml parsing"]  
reading_time: 2 minutes  

---

# SAX parser in Android

Previously, we learn about [Android](https://www.mindstick.com/articles/1567/navigation-drawer-implementation-in-android) XML [Processing](https://www.mindstick.com/blog/254/background-processing-in-android) with the [DOM Parser](https://www.mindstick.com/interview/501/what-is-the-difference-between-sax-parser-and-dom-parser). Now we see how to use SAX parser in Android.\

Android provides the facility to parse the [xml file](https://www.mindstick.com/articles/75/how-to-read-and-write-xml-file-through-c-sharp) using SAX, DOM etc. parsers. The SAX parser cannot be used to create the XML file, it can be used to parse the xml file only.

##### It consumes less memory than DOM parser.

1. Create an android

2. Add [textview](https://www.mindstick.com/forum/23237/how-do-i-center-text-horizontally-and-vertically-in-a-textview-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" >     <TextView          android:id="@+id/textView1"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_alignParentLeft="true"          android:layout_alignParentTop="true"          android:layout_marginLeft="86dp"          android:layout_marginTop="77dp"          android:textSize="20sp"   /> </RelativeLayout>
```

3. Create a xml file inside assets folder and [add data](https://www.mindstick.com/forum/287/how-to-add-data-in-drop-down-list) [records](https://www.mindstick.com/forum/34640/how-to-create-a-stored-procedure-for-display-all-records) in xml format

```
<?xml version="1.0"?><records><employee><name>Adney</name><salary>25000</salary></employee><employee><name>Kaarle</name><salary>60000</salary></employee><employee><name>John Mike</name><salary>70000</salary></employee> </records>
```

4. Now paste following code in Mainactivity class

```
 package com.javatpoint.domxmlparsing; import java.io.InputStream;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import android.app.Activity;import android.os.Bundle;import android.widget.TextView; public class MainActivity extends Activity {     TextView  tv;      @Override     public  void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          tv  = (TextView) findViewById(R.id.textView1);          try  {          //    SAXParserFactory defines a factory API that enables applications            // to configure and  obtain a SAX based parser to parse XML documents.      SAXParserFactory  factory = SAXParserFactory.newInstance();             SAXParser  saxParser = factory.newSAXParser();             DefaultHandler  handler = new DefaultHandler() {                  boolean  name = false;                  boolean  salary = false;          // Receive  notification of the beginning of an element.     public  void startElement(String uri, String localName,                             String  qName, Attributes attributes)                             throws  SAXException {                        if  (qName.equalsIgnoreCase("name")) {                             name  = true;                        }                        if  (qName.equalsIgnoreCase("salary")) {                             salary  = true;                        }                   }// end of  startElement method                        // Receive  notification of the end of a document.             public  void endElement(String uri, String localName,                             String  qName) throws SAXException {                   }                    // Receive  notification of character data.       public  void characters(char ch[], int start, int length)                             throws  SAXException {                        if  (name) {                        tv.setText(tv.getText()  + "\n\n Name : "                               +  new String(ch, start, length));                             name  = false;                        }                        if  (salary) {                        tv.setText(tv.getText()  + "\n Salary : "                               +  new String(ch, start, length));                             salary  = false;                        }                   }// end of  characters               };// end of  DefaultHandler object               InputStream  is = getAssets().open("file.xml");              saxParser.parse(is,  handler);           }  catch (Exception e) {              e.printStackTrace();          }     }}
```

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

\
![SAX parser in Android](https://www.mindstick.com/mindstickarticle/ab71c7e5-340c-45c2-b4d4-1255f6706b74/images/585a3362-c75c-4876-b80c-9031e3a921b3.png)

---

Original Source: https://www.mindstick.com/articles/1587/sax-parser-in-android

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
