articles

Home / DeveloperSection / Articles / SAX parser in Android

SAX parser in Android

Manoj Pandey 3672 18-Feb-2015

Previously, we learn about Android XML Processing with the DOM Parser. Now we see how to use SAX parser in Android.

Android provides the facility to parse the xml file 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 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 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


 SAX parser in Android


Updated 07-Sep-2019

Leave Comment

Comments

Liked By