J2ME中使用KXML解释本地XML文件

/*
*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);


}

}

你可能感兴趣的:(J2ME中使用KXML解释本地XML文件)