奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> XML >> J2ME与XML的集成
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • .Net的精髓XML和SOAP简

  • 使用XMLHTTP制作域名查

  • 什么是XML

  • XML for Analysis 规范

  • XML for Analysis 规范

  • XML for Analysis 规范

  • 修改大型 XML 文件的有

  • 通过xalan实现关系型数

  • J2ME与XML的集成
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-20

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

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.