KXML技术与J2ME开发

KXML技术与J2ME开发

【下载地址】

http://sourceforge.net/projects/kxml/files/下载源码和文档。


KXML是一个小巧的、基于事件模型的XML解析器,适合在MIDP设备上使用。
【缺点】
1.第三方的API添加进来之后,必然在很大程度上增加了MIDlet套件的大小。
2.解析XML的复杂性,会极大地消耗设备的内存,降低程序的执行速度。
【优点】

当C/S交互数据类型较多时,如果采用XML技术,将会极大降低C/S两侧程序员开发难度,因为他们可以在设计阶段就用标准的XML树形结构定义好数据格式。

【原则】

大概原则也就是这样的:
1.如果交互数据类型多,建议采用KXML技术。(KXML比SAX,DOM更加适合MIDP设备上使用)
2.如果服务器返回的数据有过多垃圾数据,那最好在C/S之间在加一个proxy server,用来过滤垃圾数据。

【使用方法】

KXML是基于事件模型的,按照下面的顺序依次读取标记
START_DOCUMENT - START_TAG - TEXT - END_TAG - END_DOCUMENT。

我们希望获取的数据一般是2种数据,1是TEXT标记里,另外一种是属性里:
1.TEXT标记:
例如:<geo:lat>39.93</geo:lat>
我们就可以通过parser.getText()获得。
2.Attribute值:

例如:<yweather:location city="Beijing" region=""   country="CH"/>
可以用

parser.getAttributeCount();

parser.getAttributeName(int index)

parser.getAttributeValue(int index)

结合使用,遍历一个标签中含有的所有属性值。

【例1】

例1主要是解析属性值,而对其他标签内容都不处理。

而其解析XML方法是其中之一:int eventType = parser.getEventType();

利用标签类型进行switch-case语句循环处理。

另外一种解析方法是:按照顺序解析XML数据。

【例2】

二者各有优势,使用在不同场景。

例1的方法优势体现在当数据有很多冗余垃圾数据时候用;

例2的方法稍微繁琐,对XML结构要求比较苛刻,完全是按照顺序读取XML数据,但优势是操作比较简单。

建议采用例1的方法解析,因为其对XML数据结构依赖性要小很多。

由于篇幅所限,不能列出工程全部源码。其中例1是以《Java ME 核心技术与最佳实践》中一个样例为原型,按照工程需要进行部分修改而来的。如果有感兴趣的朋友,可以找我索要工程源码。是一个天气预报的小工程。

猜你喜欢

转载自blog.csdn.net/fengyud/article/details/4558077
今日推荐