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> |


