网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java对Internet为什么重要.
.心存测试概念进行代码设计时的七.
.Java桌面应用程序设计:SWT 简介.
.Java也存在2000年问题.
.Jbuilder7与Weblogic7整合开发之.
.JDBCTM 入门指南(1).
.Java 基本语法(三)——运算符和.
.Java中实现基于Aspectwerkz的AOP.
.编写高级应用程序2.
.Cook JDBC with SpringFramework.
.Java入门(5) JAVA语言基本语法.
.function 语句.
.使用Java3D实现三维图像.
.java中如何获得系统路径!.
.EJB 最佳实践:工业强度的 JNDI .
.更改osworkflow让其支持hibernat.
.方法和作用域中的内部类.
.Java的模板引擎Velocity初体验.
.如何使用“月蚀”进行J2ME开发.
.MIDlet生命周期的理解及游戏死机.

在以CLDC?基?的架?上分析XML

发表日期:2008-1-5


越?越多的?用程式使用XML交??息。譬如,以 CLDC ?基?的?用程式 需要去?理 XML 文件,甚至? Html ??也??很有可能??成?一?以 XML ?基?的格式。而?意味著?一???伺服器??一???而取出?料??需要分析 XML 的技?。

XML就是「可?展???言」,是一??便的、以文字?基?的方法去呈???化的?料。

越?越多的?用程式使用 XML 交??息,甚且,在一些情?下,您以 CLDC ?基?的?用程式 (?些是指在以 CLDC ?基?的架?上?行的,像是微小的手??置之?的) 需要去?理 XML 文件。之後,甚至? HTML ??也??很有可能??成?一?以 XML ?基?的格式,?? XHTML。?意味著?一???伺服器??一???而取出?料??需要分析 XML 的技?。

?找一?以 Java ?基?的 XML 分析器不?,尤其是自?有好??以 XML ?基?的的提倡?始被定?? Java ?理程序的一部分。然而,大部分的 XML 分析器?不支援在 CLDC 所提供的有限?源?境下?作。?些分析器不是使用了太多的???就是使用在 CLDC 下不能?作的 J2SETM ??。

然而,在?有??能在 CLDC ?境下?作的?放原始? XML 分析器 ── kXML 和 NanoXML。他?二者的??有些不同 ── 本文????他??者,?且提供您如何去?定哪一?是最?合您的程式需求。然而,您也??考?是否?? XML,因? XML 文件是非常冗?的。

假如您能?控制伺服器端,去使用您自己的二?位的格式去交??料才是有意?的。

假如一?以 Java ?基?的客?端?一?以 Java ?基?的伺服器端相互?通,?是相?轻易的。在???例?,使用 DataInputStream 和 DataOutputStream ??,以?便的方法??取?料。

基本的 XML 分析器型?
基本的 XML 分析器型?有??:??性的和非??性的。

一???性的分析器透?一?文件型?定?或概要 (schema) ??一份 XML 文件,以?保?份文件的?容是程式所?期的。??要求???低?理的速度。一?非??性的分析器跳???步?,只保??? XML 文件是合乎基本格式的 (well-formed),?而言之,它遵守一般 XML 文件必?遵守的??。kXML 和 NanoXML 二者都是非??性的分析器。

 非??性的分析器
XML 分析器也能以他?如何?理和呈? XML 文件??分。

NanoXML 是一??一步? (single-step) 分析器。?定一份文件,NanoXML 以一??一的?作分析它,???份文件以一???的???回。kXML,相?之下,是一?多步?的 (multi-step) 的分析器 ── 一次分析文件的一??域。

???方法各有利弊,假如您正在?理一份?大的文件,?一步?的方法使用?多的???,因?全部的文件都?存在???中。但是?一步?的方法??有效率,假如您需要穿越?份文件很多次。多步?的方法能???易的?理?大的文件,但是您必?做?多的簿? (bookkeeping) 去追?您在文件的哪一?地方。

■ ?如何使用 kXML 呢?

? http://www.kxml.org/ 下? kXML 原始?,?且? kXML ??包含?您的?用程式。?不是所有的??都是需要的,所以只要下?包含最小 kXML 的 ZIP ?。在安?完???案後,新增下面的引入?述到您的程式中。


import org.kxml.*;
import org.kxml.parser.*;



?您??好去分析一份文件?,?生一? XmlParser ????,?入一?字元 (character) 流?唯一的??。



try {
Reader r = .....;
XmlParser parser = new XmlParser( r );
}
catch( java.io.IOException e ){
// handle exception....
}



假如您的文件是以字串被?存,?例??,您可以藉著??字串成?一?位元? (byte) ?列??取它,然後,?合 InputStreamReader 和 ByteArrayInputStream:



// ?取字串 (exception handling omitted)
String xml = "some xml";
ByteArrayInputStream bin =
new ByteArrayInputStream( xml.getBytes() );
XmlParser parser = new XmlParser( new InputStreamReader( bin ) );



然而,更可能?生的情?是,??路接收一份文件,?例??,在 CLDC 的通常??架? (GCF),您使用 MIDP ?建支援 HTTP 的???做?件事,然後您?使用 GCF 回?的?入流 (input stream),?且??它成?字元流 (character stream):



// Read from web (exception handling omitted)
HttpConnection conn = .....;
InputStreamReader doc =
new InputStreamReader( conn.openInputStream() );
XmlParser parser = new XmlParser( doc );



析器被?生後,您呼叫它的 read 方法去?取文件分?的??。read 方法?文件的每一?元件回?一? ParseEvent 物件:


上一篇:在移动设备上用J2ME实现动画 人气:687
下一篇:在应用中加入全文检索功能?基于Java的全文索引引擎Lucene简介 人气:974
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐