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.
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.
Ask Questions? Discuss: Kxml Parser Example
Post your Comment