资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> JSP编程 >> J2ME >> 文档正文
最近更新
普通文档 移动开发:J2ME中定点库
普通文档 MIDlet生命周期的深入理
普通文档 移动开发:RMS概念解析与
普通文档 在基于MIDP的应用程序上
普通文档 教您如何在MIDP开发中实
普通文档 开发经验谈:贪吃蛇游戏
普通文档 J2ME学习系列之如何将J2
普通文档 教您如何解决J2ME开发中
普通文档 用实例讲解一个定制计数
普通文档 熟练使用J2ME在实际开发
推荐文章
  • 此栏目下没有推荐文档
  • J2ME学习系列之如何将J2ME与XML集成

    文章作者:佚名 录入时间:2006-7-5 来源:不详
    网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。


    1、XML(Extensible Markup Language)可扩展标记语言——XML独立于硬件和软件,XML文件和HTML文件一样,实际上是一个文本文件。创建XML文件最普通的工具和HTML一样,就是“记事本”了。除了“记事本”之外,当然还有一些更加方便的工具,如XML Notepad、XML Pro、CLIP、XML 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分析程序连接MIDlet到XML文件。

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


  • 上一篇文档:

  • 下一篇文档:
  •     查找更多“J2ME学习系列之如何将J2ME与XML集成”的内容  
    相关连接
  • 移动开发:J2ME中定点库MathFP使用入门

  • MIDlet生命周期的深入理解及游戏死机问题

  • 移动开发:RMS概念解析与使用指南

  • 在基于MIDP的应用程序上使用JDBC

  • 教您如何在MIDP开发中实现图片放缩