J2ME学习笔记(七)-----J2ME与XML的集成

原创 2004年08月05日 09:27:00

J2MEXML的集成<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.        XML(Extensible Markup Language)可扩展标记语言----- XML独立于硬件和软件,XML文件和HTML文件一样,实际上是一个文本文件。创建XML文件最普通的工具和HTML一样,就是记事本了。除了记事本之外,当然还有一些更加方便的工具,如XML NotepadXML ProCLIPXML SPY等,这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范。

 

2.        为了访问XML文件,J2ME工具箱必须包含一个XML分析程序,适用于移动设备的XML分析程序优势在于:不用消耗大量的内存(占用内存较少).

 

3.        适用于移动设备的XML分析程序有以下几种:(XML分析程序需要从Internet上下载)

KXML  MinXML  NanoXML   TinyXML

 

4.        分析XML文件有两种方法:基于事件的和基于树的。

基于事件的XML分析程序-----单独分析XML文件中的每个元素,并通过回调方法把分析的数据送到MIDlet应用。

基于树的XML分析程序-----相反读入整个XML文件到一种内部的树结构,把此文件存储在移动设备的内存中,缺点是带来设备上很大的内存开销,优点是快而方便地导航和操纵已分析的数据。

 

5.        一个实例-----用基于树的XML分析程序连接MIDletXML文件

1)      首先需要一个TinyXML分析程序,可从Internet上下载,该程序是一个.jar的包,实际上就是一个java的类库(很小15KB)

2)      下载完后把TinyXML分析程序放到X:/WTK104/apps/ProjectName/lib中。

3)      XML文件内容如下:

<?xml version="1.0" ?>

<mail>

       <From>Developer</From>

       <To>Students</To>

       <Cc>Faculty</Cc>

       <Date>30 </Date>

       <Subject>Integration</Subject>

       <Body Language="English">

              This is J2ME!!!!!!

       </Body>

</mail>

另存为mail.xml,你也可以使用自己的XML文件-----把该文件放如J2EE服务器的public_html文件夹中。

 

4)      MIDlet应用代码如下:

import java.io.*;

import java.util.*;

import java.lang.String;

import javax.microedition.lcdui.*;

import javax.microedition.io.*;

import javax.microedition.midlet.*;

//下面两个包出现在XML分析程序tinyTreeDemo

import gd.xml.*;

import gd.xml.tiny.*;

 

public class tinyTreeDemo extends MIDlet implements CommandListener

{

       private String url;

       private ParsedXML root;

      

       private Display myDisplay=null;

       private Form mainScreen;

       private TextField requestField;

      

       Command sendCommand=new Command("SEND",Command.OK,1);

      

       public tinyTreeDemo()

       {

              //放置mail.xml文件的Web站点

              url="http://127.0.0.1:8000/mail.xml";

              myDisplay=Display.getDisplay(this);

              mainScreen=new Form("Type a URL:");

              requestField=new TextField(null,url,100,TextField.URL);

              mainScreen.append(requestField);

              mainScreen.addCommand(sendCommand);

              mainScreen.setCommandListener(this);

       }

      

       public void startApp() throws MIDletStateChangeException

       {

              myDisplay.setCurrent(mainScreen);

       }

      

       public void pauseApp()

       {

             

       }

      

       public void destroyApp(boolean unconditional)

       {

             

       }

      

       public void commandAction(Command c,Displayable s)

       {

              if(c==sendCommand)

              {

                     String urlString=requestField.getString();

                     try

                     {

                            //返回XML根元素

                            root=TinyParser.parseXML(url);

                            displayNode(root);

                     }

                     catch(ParseException e)

                     {

                            System.err.println("startApp:" + e);

                     }

              }

       }

      

       private void displayNode(ParsedXML px)

       {

              //返回节点对象类型

              String nodeName=px.getTypeName();

              //返回节点对象类型+名称,例如tag<mail>, tag为类型(标签)mail为节点名

              if(px.getName()!=null)

                     nodeName+="<" + px.getName() + ">";

                     //返回存储在标签之间的内容

              String nodeContent=px.getContent();

              if(nodeContent==null)

                     nodeContent="";

                     //在控制台中打印出来

              System.out.println(nodeName + ":");

              System.out.println(nodeContent);

             

              Enumeration e;

              //返回属性,如果有就存储在Enumeration

              e=px.attributes();

              if(e.hasMoreElements())

              {

                     System.out.print("attribute:");

                     while(e.hasMoreElements())

                     {

                            //返回属性名称

                            String attrName=(String)e.nextElement();

                            //px.getAttribute(attrName)返回属性的值

                            System.out.println(attrName + ":" + px.getAttribute(attrName));

                           

                     }

              }

              //返回节点中的元素,如果有就存储在Enumeration

              e=px.elements();

              if(e.hasMoreElements())

              {

                     //显示下一个节点

                     while(e.hasMoreElements())

                            displayNode((ParsedXML)e.nextElement());

              }

       }

}

另存为tinyTreeDemo.java

5)      编译---预检验----测试(J2EE服务器需开启)

结果如下,控制台显示如下信息----

root:

 

tag<mail>:

 

tag<From>:

 

text:

Developer

tag<To>:

 

text:

Students

tag<Cc>:

text:

Faculty

tag<Date>:

 

text:

30

tag<Subject>:

 

text:

Integration

tag<Body>:

 

attribute:Language:English

text:

This is J2ME!!!!!!

最新版idea2017+kemulator搭建J2ME开发环境

要求32位电脑,没有的话装个虚拟机。实际中发现kemulator的调试功能只有在32位条件下才能运行...
  • songhaibei7305
  • songhaibei7305
  • 2017-06-26 17:35:56
  • 571

J2ME学习笔记 J2ME学习笔记 J2ME学习笔记

  • 2008年11月19日 15:11
  • 188KB
  • 下载

Eclipse搭建J2ME开发环境

sun_java_wireless_toolkit-2_5_2-ml-windows.exe 下载地址:http://www.oracle.com/technetwork/java/download...
  • ituff
  • ituff
  • 2011-11-07 21:48:00
  • 2043

用Eclipse做J2Me开发的前期配置

 我也是一个初学者,从一个初学者的角度上讲,就是要尽可能的详细,因为这个东西稍微配置不对,或者是那里没有注意到,就会走不少的弯路,所以我在这里把配置讲得非常的详细,以图文的形式展示,以免你看了不知道所...
  • fenglibing
  • fenglibing
  • 2007-09-05 23:01:00
  • 10434

eclipse中配置j2me,简单运行j2me程序

1.安装好jdk2.去官网上下载好eclipse,去eclipseme.org上下载eclipseme,http://www.oracle.com/technetwork/java/download-...
  • snrqtdhuqf
  • snrqtdhuqf
  • 2011-01-20 10:09:00
  • 2454

安卓j2me模拟器

  • 2013年07月08日 16:52
  • 532KB
  • 下载

嵌入式有关的武功

嵌入式OS(Linux、RTLinux、WinCE、Symbian、VxWorks、uC/OS-II、eCos)嵌入式图形开发(QTE、 GTK+、DirectFB、XWindow)嵌入式CPU(AR...
  • symbian_cpp
  • symbian_cpp
  • 2008-07-15 00:55:00
  • 523

J2ME及其移植

J2me及其移植   1. 简介 1.1 系统结构 Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒、...
  • ydhua1988
  • ydhua1988
  • 2015-01-22 09:22:50
  • 1285

eclipse 下 j2me 开发环境的配置

首先,你要有eclipseme的插件,到网上搜一下就有了。我用的是eclipseme.feature_1.5.0_site的,这个版本以后,都不能直接将文件复制到eclipse目录下就可以了,它要经过...
  • difeng
  • difeng
  • 2006-04-22 16:46:00
  • 1052

J2ME单机游戏在国内已经走到了尽头

J2ME单机游戏在国内已经走到了尽头作者:陈跃峰出自:http://blog.csdn.net/mailbomb        当对于大多数人来说,还不知道J2ME是怎么回事,而且很多手机用户还不知道...
  • Mailbomb
  • Mailbomb
  • 2005-03-07 01:09:00
  • 2550
收藏助手
不良信息举报
您举报文章:J2ME学习笔记(七)-----J2ME与XML的集成
举报原因:
原因补充:

(最多只允许输入30个字)