详解基于J2ME平台下SOAP协议的应用
=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="511" height="77" src="http://images.51cto.com/files/uploadimg/20111212/1701301.jpg" />
第一行创建了一个文档对象,保存XML树。第三行从一个名为abc的InputStreamReader中创建一个KXML语法分析程序。第四行传送这个语法分析程序到文档,然后让文档开始分析。XML被递归分析,直到到达文档的结尾。当分析调用退出时,整个文档被装入内存,这时就可以对XML进行操作了。 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="509" height="170" src="http://images.51cto.com/files/uploadimg/20111212/1701302.jpg" /> <abc>元素是根元素的直接子元素,可以遍历根元素的子元素,寻找abc标记,如果子元素不是一个abc标记,则返回。 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="380" height="73" src="http://images.51cto.com/files/uploadimg/20111212/1701303.jpg" /> 如果找到了abc子元素,开始遍历它的子元素,并把这些子元素的内容打印出来。 通过KXML对XML的处理,可以进一步实现对SOAP数据的处理,实现J2ME平台对SOAP协议的支持。 J2MEWebServices规范(JSR172)的制订给J2ME平台增加两大功能:一是使其能够远程访问基于SOAP/XML的WebServices;二是使其具有解析XML数据的能力。目前JSR172的标准已经制定完成,为了实现这两大功能,JSR172新定义了提供相应功能的两个可选包。这两个包占用内存非常少,XML-RPC部分大概需要25-30KB的空间,而XML解析器则需要35KB左右。 规范只对JAX-RPC的模型提供支持,也就是说仅支持同步的访问方式,使用J2ME客户端可以向服务器发送RPC请求和获得RPC响应。在JSR172中实现的是SAX模式的解析器。能够解析XML之前首先需要创建SAXParser的实例。 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="491" height="42" src="http://images.51cto.com/files/uploadimg/20111212/1701304.jpg" /> 接下来要获得XML文件的输入流,并把它作为其中一个参数传递给saxParser的parse方法。 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="470" height="45" src="http://images.51cto.com/files/uploadimg/20111212/1701305.jpg" /> DefaultHandler是SAX2默认的事件处理器基类,用于处理XML解析事件的方法如下: 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="522" height="120" src="http://images.51cto.com/files/uploadimg/20111212/1701306.jpg" /> 默认情况下,DefaultHandler的上述方法什么也不做,因此必须自己扩展DefaultHandler并且覆盖上述的方法。程序中提供了一个BasicHandler用来处理xml文件。classBasicHandlerextendsDefaultHandler在BasicHandler类中有两个成员变量 phones用来存储我们已经解析出来的Phone对象,tagStack则用来存放我们解析到的元素名称,比如sonyericsson,phone,name,colour等。在文档解释结束后,也就是在endDocument()方法内我们把解析的结果显示在手机屏幕上,BasicHandler的几个重要方法如下: 498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="618" height="240" src="http://images.51cto.com/files/uploadimg/20111212/1701307.jpg" /> 结束语 通过扩充J2ME平台对XML数据的处理,完成了J2ME平台对SOAP协议的支持。通过SOAP协议能够使得基于J2ME平台的嵌入式设备 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |