快速业务通道

J2ME学习系列之如何将J2ME与XML集成 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

J2ME学习系列之如何将J2ME与XML集成

时间:2011-01-13

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); }     

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号