/*
*J2ME中使用KXML解释XML文件
*把kxml2-2.3.0.jar包放在C:/WTK25/apps/KXML1/lib目录下
*我的J2ME项目名称是KXML1,用WTK2.5建立
*把下面这段代码保存为KXMLliao.java即可
*
*
*XML文件内容如下:
*
*
*<?xml version="1.0" encoding="UTF-8"?>
<WuDang>
<person version='剑宗'>
<name>风清杨</name>
<attack>独孤九剑</attack>
</person>
<person version='气宗'>
<name>岳不群</name>
<attack>紫霞神功</attack>
</person>
</WuDang>
粘贴到记事本中
把它保存为test.xml,放到C:/WTK25/apps/KXML1/res目录下
注意:保存时在编码中选UTF-8,文件类型选所有文件,保存名称为test.xml
*/
import org.kxml2.io.*;
import org.xmlpull.v1.*;
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class KXMLliao extends MIDlet implements CommandListener
{
private Display display;
private Form form;
private Command exitCommand = new Command("退出", Command.EXIT, 1);
public KXMLliao()
{
display = Display.getDisplay(this);
}
public void startApp()
{
try
{
Interpret();
}
catch(XmlPullParserException xpp)
{
}
}
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
public void destroyApp(boolean unconditional)
{
}
public void pauseApp()
{
display.setCurrent(null);
form = null;
}
//解释XML文件
public void Interpret() throws XmlPullParserException
{
form = new Form("解释XML");
KXmlParser parser = new KXmlParser();
parser.setInput(this.getClass().getResourceAsStream("/test.xml"),null);
int eventType = parser.getEventType();
try
{
while (eventType != XmlPullParser.END_DOCUMENT)
{
//如果当前标签为开始标签,且标签内容为person的话
if(eventType == XmlPullParser.START_TAG && parser.getName().equals("person"))
{
//读取第一个属性,此处从0开始计算
form.append("代表宗派:"+parser.getAttributeValue(0)+"/n");
//转到下一个标签
eventType = parser.nextTag();
//如果是name标签
if(parser.getName().equals("name"))
{
//提取name标签的内容
form.append("代表人物:"+parser.nextText()+"/n");
}
//转到下一个标签
eventType = parser.nextTag();
//如果是attack标签
if(parser.getName().equals("attack"))
{
//提取attack标签的内容
form.append("成名招数:"+parser.nextText()+"/n");
}
//换行
form.append("/n");
}
eventType = parser.next();
}
}
catch(IOException ioe)
{
}
form.append("解释完毕!");
form.addCommand(exitCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
}