[an error occurred while processing this directive]

Kxml Parser Example

                         

In this example we use "catching parsing events" way to parse the xml. Through 'catching parsing events', the parser traverses the XML data and issues callbacks to a previously registered event listener whenever it encounters particular structures in the data. For example, when the parser encounters an opening tag such as <employee> then the event listener would receive an event notifying it of the encounter and pass it any necessary information. A parser implements such a strategy is called a push parser because the parser is "pushing" the event to a listener. 

The Entire Application is as follows:

Program console screen shot:

Full code of the application 

KXMLParserExample.java

import java.io.*;
import org.kxml.*;
import org.kxml.parser.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class KXMLParserExample extends MIDlet {
  public String emp = "/employee.xml";
  XmlParser parser = null;

  protected void startApp(){
    try{
      parser = new XmlParser(new 
      InputStreamReader
(this.getClass().getResourceAsStream(emp))300);

      ParseEvent event = null;
      while((event = parser.read()).getType() != Xml.END_DOCUMENT){
        if(event.getType() == Xml.START_TAG){
          String name = event.getName();
          if(name != null && name.equals("details")){
            System.out.println("----------[ EMP-DETAILS ]----------");
            parseAddressTagparser );
            System.out.println("-----------------------------------\n");
          }
          name = null;
        }
        event = null;
      }
    }catch (IOException ioe){
      System.out.println("XML Parsing Error: " + ioe);
      ioe.printStackTrace();
    }finally{
      parser = null;
    }      
  }

  protected void pauseApp(){}
  
  public void parseAddressTagXmlParser parser throws IOException {
    ParseEvent event = null;
    while ((event = parser.peek()).getType() != Xml.END_DOCUMENT) {
      String name = event.getName();
      int type = event.getType();
      if (type == Xml.END_TAG && name.equals("details")) {
        event = null;
        name = null;
        return;
      }
      event = parser.read();
      if (type != Xml.START_TAG) {
        event = null;
        continue;
      }
      ParseEvent next = parser.read();
      if (next.getType() != Xml.TEXT) {
        event = null;
        next = null;
        continue;
      }
      String text = next.getText();
      System.out.printlnname + ": " + text );
      event = null;
      text = null;
      next = null;
    }
  }

  protected void destroyApp(boolean arg){
    notifyDestroyed();
  }
}

employee.xml

<employee>

    <details>
        <name>Sandeep Kumar Suman</name>
        <designation>J2ME Programmer</designation>
        <city>Gorakhpur</city>
        <state>UP</state>
    </details>

</employee>

Download Source Code of the application discussed above.

                         

[an error occurred while processing this directive]