微型XML解析器:kXML

来源:互联网 发布:php mysqli查询数据库 编辑:程序博客网 时间:2024/04/30 01:53

原文地址:http://os.ajava.org/category/xml/%E5%BE%AE%E5%9E%8Bxml%E8%A7%A3%E6%9E%90%E5%99%A8%EF%BC%9Akxml-/

 

 


 一、kXML是什么?
kXML是一个小的XML拉解析器,专为在一些有特别限制的环境中使用,如Applets、MIDP等方面。
KXML是一个Enhydra维护的项目,支持下面的性能:

 

  · 支持XML名称空间
  · 用"松散"模式分析HTML或其它SGML格式
  · 占用很少的存储空间(21 kbps)
  · 基于Pull的分析
  · 支持XML写操作
  · 可选的DOM支持
  · 可选的WAP支持

 


二、kXML历史版本
1)1999-12-25发布名为XP的SAX解析器
2)2000-07-25开始发布kXML 1
3)2003-09-01开始发布kXML 2
目前最新的是2006-06-23发布的 kXML 2 release 2.3.0版本。

 


三、kXML 1与kXML 2的对比
kXML 1是一个简单的pull语法解析器,基于事件对象。
相对于 kXML 1 , kXML 2是基于XMLpull API ,可以减少性能开销和创建的对象数量,kXML 2采用BSD协议。

 


四、kXML重要特点
kXML在特别限制的环境的开发中具有以下两个重要特点:
1)支持WBXML (WAP Binary XML) :允许解析WAP或Wireless Village协议的内容;
2)采用“放松”模式解析HTML或SGML(Standard Generalized Markup Language,标准通用标记语言)格式文件,以避免在手机上需要两个单独的解析器。

 


五、kXML简单例子
KXML支持DOM语法分析和操作,但是不支持push语法分析。取而代之,它使用一种稍微不同的称为"Pull"的分析方法。

<elements>
  <text>text1</text>
  <text>text2</text>
</elements>

解析代码如下:
parser.nextTag();
parser.require(XmlPullParser.START_TAG, null, "elements");

 

while(parser.nextTag() == XmlPullParser.START_TAG) {
  parser.require(XmlPullParser.START_TAG, null, "text");

 

   // handle element content
   System.out.println("text content: "+ parser.nextText());

 

  parser.require(XmlPullParser.END_TAG, null, "text");
}

 

parser.require(XmlPullParser.END_TAG, null, "elements");

 


六、下载
官方下载地址:http://sourceforge.net/project/showfiles.php?group_id=9157&package_id=58653

 


七、参考资料
官方网站地址:http://kxml.sourceforge.net/
API文档地址:http://kxml.sourceforge.net/kxml2/javadoc/
xmlpull:http://xmlpull.org/

 


八、结束语
本文简单介绍了kXML,虽然已经有两年多没发行新版本,但在wap开发中还是有不错的效果,由于本人水平有限,如发现有错误纰漏,请指正。
联系方式:
网站:http://ajava.org
QQ:76662116
EM:chinesedocument@gamil.com

 


九、作者简介
mark,ajava.org站长,软件工程师,从事多年软件开发,曾开发多个市级、省级、国家级软件。

原创粉丝点击