Home J2me Kxml Kxml Parser Example



Kxml Parser Example
Posted on: December 18, 2008 at 12:00 AM
In this example we use "catching parsing events" way to parse the xml.

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 ]----------");
  parseAddressTag( parser );
  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 parseAddressTag( XmlParser 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.println( name + ": " + 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.

Related Tags for Kxml Parser Example:
cxmleventsparsinglistormdataformeventiostructparsecountparserformatcallbacksgiscallbackvistructuretagthisopenstrategylistenerifforexamplecallpushissuetoexaminformationregisterldcountershissueseitbackrsistructuresnotliuseulpeimartceinnomlreceivermpasspartinfocalasmntpartrtraversecacountersnotifycatchesthroughemallpeniculistenmehrrateackcatxawhenxampssussaeeessatanykisissinfllivopeningmplpregistandarstrrtsawheneverxmssthavstchiatiinforminformatpleplprndono


More Tutorials from this section

Ask Questions?    Discuss: Kxml Parser Example  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.