当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

J2ME中KXML与NanoXML解析XML总结[Java编程]

赞助商链接



  本文“J2ME中KXML与NanoXML解析XML总结[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

XML全称为EXtensible Markup Language,中文称为可扩大标志语言,是一种计算机所能理解的信息标记语言.计算机之间可以通过此种标志语言处理包含各种信息的文章等功效.由于XML是一种答应相关人士安闲决意的标志语言,所以称语言的可扩大性.XML作为一个尺度,并且由于XML是一种纯文本格局存储文件,从而使得XML本身具有了很好的跨平台的特点,因此被遍及利用于网络数据交换的各个范畴,包含网络通讯、差别程序语言平台之间的数据交流等方面.

要利用XML作为网络中传输通讯,必将在传输双方的发送方跟接纳端都具有对XML文件的解析本领才能实现正常的数据交换并完成通讯历程.由于在移动设备硬件中的CPU跟内存的不足,跟网络传输速率的欠缺,并且解析XML需求损耗更多的资源,因此使得XML在移动设备中的利用收到了限制,在更多时刻我们采取的是采取基于基本数据流的情势(如J2ME中的DataInputStream和DataOutputStream)在读取和发送数据.但是,随着智妙手机硬件的提高跟遍及以及3G网络的落实,使得在不久我们将能无顾忌地在移动通讯中利用XML了.

在J2ME体系中,对xml的解析有对比闻名的第三方解析API,辨别为KXML和NanoXML,他们都供应了对解析xml的支持.KXML在解析XML历程中会对文件内容一层一层举行解析,因此成为增量式解析器,对比合适大文件的解析.而NanoXML是一次性解析器,在一次时间里就把整个xml文档解析完,因此不合适大文件的解析,会造成内存不足的现象.有关这两种解析器网上都有介绍过,在这里对它们的利用举行总结.

1、成立实例对象

1、利用NanoXML时由于是一次性机制,因此将xml数据流一次性封装成立解析实例对象kXMLElement

/**
    HttpConnection conn;
    String xml;
    Reader r;
    */
     //......获得网络衔接对象大概其他情势数据对象
 InputStreamReader isrDoc =
 new InputStreamReader(conn.openInputStream());//获得输入流,这里以HttpConnection为例
 kXMLElement kXMLeroot = new kXMLElement();//成立实例对象
 try {
  kXMLeroot.parseFromReader(isrDoc);
 }
 catch( kXMLParseException kpe ){
          kpe.printStackTrace();
 }
 catch( IOException ie ){
          ie.printStackTrace();
    }

2、利用kxml时首先需求得到一个XmlParser实例对象,在构造办法中传入Reader参数

/**
    HttpConnection conn;
    String xml;
    Reader r;
    */
    InputStreamReader isrDoc =
 new InputStreamReader(conn.openInputStream());//获得输入流,这里以HttpConnection为例
 XmlParser parser = new XmlParser(isrDoc);//成立实例对象

2、KXML解析XML

boolean parsing = true;//判断能否到达最后一个document标签
    while()
    {
        ParseEvent event = parser.read();
        swith(event.getType())
   {
        case Xml.START_TAG:
         ....//处理开始标签tag
         break;
         case Xml.END_TAG:
         ...//处理完毕标签tag
         break;
         .......//其他标签处理
        case Xml.END_DOCUMENT:
        ...//最末tag
          parsing = false;
         break;
     }
    }

3、NanoXML解析XML

Vector list = kXMLeroot.getChildren();//获得子节点列表
     Vector contents = new Vector();//用于获得节点内容
     for(int i = 0; i < list.size(); ++i){
   kXMLElement node = (kXMLElement) list.elementAt(i);
   String tag = node.getTagName();
   if(tag == null) continue;
   if(!tag.equals( "item" )) continue;
   contents.addElement(node.getContents());
   }
     String[] contentStrs = new String[contents.size()];//转化为字符串数组

NanoXML是一个能在CLDC 环境下运行的开放源代码,NanoXML是非常小(6KB)的一步XML解析器;KXML是一个只占很小存储空间的XML语法解析程序,关于J2ME利用程序非常合适.


  以上是“J2ME中KXML与NanoXML解析XML总结[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • j2me创意-Wap浏览器的源代码
  • J2ME中读取Unicode和UTF-8编码文件
  • J2ME中的底子碰撞检测算法浅析
  • <b>关于j2me game双缓冲实现根究</b>
  • J2ME游戏开辟学习之用setClip分割图片
  • 在J2ME/MIDP中实现图象旋转
  • 初学j2me必读 网友学习笔记
  • 操纵J2ME程序测试MIDlet的生命周期
  • J2ME中操纵缓存将屏幕内容存储为Image
  • 操纵J2ME技术开辟RPG游戏之按键处理机制
  • J2ME中setClip办法操纵详解
  • 在J2ME手机程序开辟中操纵颜色
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .