xml写法比较简单,而且非常便于人来阅读.但是必须在客户端与服务器端有xml的解析器才可以正常通信,由于初期的移动信息设备内存与处理器上的不足,所以在midp1.0中并没有提供对xml的支持.随着内存与处理器的提高,对xml的支持成为了可能.在jsr182中提供了xml的解析器,但是这并不是标准midp中的api需要特定的实现才可以支持.幸运的是有第三方的api对解析xml提供了支持,比较有名的是kxml与nanoxml.
要使用kxml,你必须首先得到一个xmlparser实例,它用reader作为构造器的参数: 【程序编程相关:数据汇总加排序】
使用xml之前,你必须考虑好是不是必须用它来传输数据,因为解析xml是比较耗费资源的,尤其是在cpu与内存的资源都很宝贵的条件下.如果我们能使用datainputstream与dataoutputstream传输的话就尽量不要使用xml.xml的解析器有两种,一种是确认性的,他在解析之前会对xml的文档进行有效性的验证,确保这是应用程序需要的.另一种则是非确认性的,他不做验证工作直接进行解析,无疑这样的速度会快.kxml与nanoxml都是这样的解析器.它们也存在差别,kxml是增量解析器他会一点一点的解析,这样在解析大的文档的时候会效率比较高.nanoxml是一步解析器,一次就把文档解析完,如果文档很大的话,这无疑会耗费很大的内存.要使用kxml你可以从http://www.kxml.org 下载得到,在http://nanoxml.sourceforge.net 你可以下载nanoxml. 【推荐阅读:网络情况下如何实现交互。】
reader r = .....; 【扩展信息:VB6.0初学者的十个编程小技巧】try { xmlparser parser = new xmlparser( r );}catch( java.io.ioexception e ){ // handle exception....}如果你的xml文档存储在string内的话你可以使用bytearrayinputstream与inputstreamreader:
string xml = "<a>some xml</a>";bytearrayinputstream bin = new bytearrayinputstream( xml.getbytes() );xmlparser parser = new xmlparser( new inputstreamreader( bin ) );当从网上接收数据的时候可以这样:httpconnection conn = .....;inputstreamreader doc = new inputstreamreader( conn.openinputstream() );xmlparser parser = new xmlparser( doc );得到parser实例后我们就可以调用read方法进行解析了,read方法会返回一个parseevent,通过判断他的类型我们就可以解析xml了.... 下一页