`
geelong
  • 浏览: 117141 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

kxml 解析xml 高级

    博客分类:
  • j2me
阅读更多
package http;


import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;




public class HttpServletXml extends MIDlet implements CommandListener{

	private Display dis;
	private Form frm=new Form("网页信息为");  //记住new
	private TextField tf=new TextField("输入地址","",50,TextField.ANY); 
	private Command submit=new Command("登陆",Command.SCREEN,1);
	
	public HttpServletXml() {
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	}

	protected void pauseApp() {
	}

	protected void startApp() throws MIDletStateChangeException {
		dis=Display.getDisplay(this);
		dis.setCurrent(frm);
		frm.addCommand(submit);
		frm.append(tf);
		frm.setCommandListener(this);
	}

	public void commandAction(Command c, Displayable d) {
		if(c==submit){
		ThreadDemo td=new ThreadDemo();
		td.start();
			
		}
		
	}
	
	class ThreadDemo extends Thread{
		public void run(){
		 String url="http://localhost:8080/Servlet";
			try {
				HttpConnection hc=(HttpConnection)Connector.open(url);
				KXmlParser parser=new KXmlParser();
				parser.setInput(hc.openInputStream(), "UTF-8");
				  parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
			        int eventType=parser.getEventType();
			        while(eventType!=XmlPullParser.END_DOCUMENT){
			        	if(eventType==XmlPullParser.START_DOCUMENT){
			        		System.out.println("start");
			        	}else if(eventType==XmlPullParser.END_DOCUMENT){
			        		System.out.println("end");
			        	}else if(eventType==XmlPullParser.START_TAG){
			        		System.out.println(parser.getName()+"      START_TAG");
			        		}else if(eventType==XmlPullParser.END_TAG){
			        			System.out.println(parser.getName()+"      END_TAG");
			        	}else if(eventType==XmlPullParser.TEXT){
			        		System.out.println(parser.getText()+"                              getText()");
			        	}
			        	eventType=parser.next();
			        }
				
				

			} catch (Exception e) {
				e.printStackTrace();
	
			}
		}
		
	}

}



package kxmltest;


import java.io.ByteArrayInputStream;
import java.io.InputStreamReader;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;




public class HttpServletXmlRequire extends MIDlet implements CommandListener{

	private Display dis;
	private Form frm=new Form("网页信息为");  //记住new
	private TextField tf=new TextField("输入地址","",50,TextField.ANY); 
	private Command submit=new Command("登陆",Command.SCREEN,1);
	
	public HttpServletXmlRequire() {
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	}

	protected void pauseApp() {
	}

	protected void startApp() throws MIDletStateChangeException {
		dis=Display.getDisplay(this);
		dis.setCurrent(frm);
		frm.addCommand(submit);
		frm.append(tf);
		frm.setCommandListener(this);
	}

	public void commandAction(Command c, Displayable d) {
		if(c==submit){
		ThreadDemo td=new ThreadDemo();
		td.start();
			
		}
		
	}
	
	class ThreadDemo extends Thread{
		public void run(){
	        String xml="<elements>"  
					   +"<text>text1</text>"  
					   +"<text>text2</text>"  
					   +"<abc>text2</abc>"  
					   +"</elements>";  

			try {
				ByteArrayInputStream bin = new ByteArrayInputStream( xml.getBytes() );
		        KXmlParser parser = new KXmlParser();		       		        
		        parser.setInput(new InputStreamReader(bin));	    
		      
		         parser.nextTag();   
//		        parser.require(XmlPullParser.START_TAG, null, "elements");   
		         
		        while(parser.nextTag() == XmlPullParser.START_TAG) {   
//			           parser.require(XmlPullParser.START_TAG, null, "text");    //nexTag 和 这里要匹配 否则报错
			           System.out.println("text content: "+ parser.nextText());   
//			         parser.require(XmlPullParser.END_TAG, null, "text");   
			       }
		        
//		       parser.require(XmlPullParser.END_TAG, null, "elements");   

				
				
			} catch (Exception e) {
				e.printStackTrace();
	
			}
		}
		
	}

}
 
分享到:
评论

相关推荐

    kxml源码 org包 xml解析文件包

    总的来说,KXML是一个强大且实用的XML解析库,它的源码揭示了XML解析的底层机制,对于理解XML处理和提升编程技能具有重要价值。通过深入研究org包中的源码,开发者可以更好地掌握XML解析的技巧,提升自己的开发能力...

    kxml解析需要用到得的jar包

    kXML是一个轻量级、快速且高效的XML解析器,尤其适用于资源有限的环境,如移动设备或嵌入式系统。 kXML库由Kohsuke Kawaguchi创建,它提供了DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式...

    xml解析+kxml2+xmlpull

    在Android开发中,XML解析是处理XML文档不可或缺的技术,主要包括DOM(Document Object Model)、SAX(Simple API for XML)、PULL(Pull Parser)以及KXML2等方法。这里我们将详细探讨“xml解析+kxml2+xmlpull”...

    基于j2me和kxml对XML文档进行解析的一个小程序(不含源码)

    基于j2me和kxml对XML文档进行解析的一个小程序。用来在手机上看看德语单词。

    J2ME 解析 xml 文件所需包 kxml2-min-2.3.0.jar

    J2ME 中 KXML2 解析器解析 xml 文件源代码所需要的压缩包 kxml2-min-2.3.0.jar。

    浅谈KXML2解析问题

    KXML2是一个用于Java平台上的轻量级XML解析库,主要应用于移动设备等资源受限的环境中。它采用Pull解析模式,即开发者通过一系列方法调用来“拉取”XML文档中的数据,而不是由解析器主动推送数据给应用程序。这种...

    j2me处理xml的jar包(kxml2-2.3.0.jar)

    "j2me处理xml的jar包(kxml2-2.3.0.jar)"是专为J2ME环境设计的一个轻量级XML解析库,它允许开发者在资源有限的移动设备上有效地解析和生成XML文档。这个库的名称为KXML2,版本号为2.3.0,提供了与Java标准版(Java ...

    kxml2,兼容xmlpull的小型解析器.zip

    kxml2是一个轻量级的XML解析库,它在Java平台上运行,并且是XML Pull解析器的实现之一。XML Pull是一种处理XML文档的事件驱动模型,允许开发者通过一系列的读取操作来解析XML数据,而无需构建整个XML文档树。这种...

    kxml2.3.0 源码

    《深入解析KXML2.3.0:J2ME中的XML解析框架》 XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java Micro Edition(J2ME)环境中,由于资源有限,对...

    kuixdemo-1.0.0(J2ME下解析xml文件)

    1. **KXML库**:KXML是轻量级的XML解析库,特别适合资源有限的J2ME环境。它提供了SAX(Simple API for XML)解析器的简化版本,通过事件驱动的方式处理XML文档。 2. **NanoXML**:另一个轻量级的XML解析库,它使用...

    kxml2-2.3.0.jar

    J2ME中使用KXML解释XML文件 J2ME中使用KXML解释XML文件

    android解析xml源码和ppt.zip

    XML解析是Android应用程序处理这些数据的关键步骤。本资料包“android解析xml源码和ppt”提供了关于Android系统如何解析XML以及相关PPT的深入讲解。以下是关于这个主题的详细知识点: 1. XML解析器类型: - DOM...

    kxml2-2.2.2.jar

    《深入解析kxml2-2.2.2.jar:Android XML解析的重要库》 XML(eXtensible Markup Language)是一种被广泛应用于网络数据交换的标准格式,尤其在Android开发中,XML用于布局文件、配置文件等多种场景。在Android平台...

    xml三种解析方法实现

    XML(eXtensible Markup Language)是一种用于存储和传输...在项目中,选择合适的XML解析方法至关重要,因为它直接影响到程序的性能和可维护性。了解并掌握这三种解析方式,可以帮助开发者针对不同的场景做出最佳决策。

    kxml2_doc_src

    KXML2,作为一个轻量级的XML解析库,尤其在J2ME(Java 2 Micro Edition)环境中,它扮演了重要的角色。J2ME是Java平台的一个子集,主要用于嵌入式设备,如手机、智能手表等,而这些设备往往资源有限,因此需要高效且...

    kxml2_2.3.0.jar

    KXML2是一个轻量级的XML解析器,它实现了XML Pull解析API(XMLPullParser),这是用于读取XML数据的一种高效且低内存占用的方法。这个版本2.3.0是该库的一个特定发行版,可能包含了性能优化、错误修复或新功能。 在...

    kxml2-2.3.0.jar_和_xmlpull_1_1_3_4c.jar

    "kxml2-2.3.0.jar" 和 "xmlpull_1_1_3_4c.jar" 是两个关键的库文件,专门用于XML解析。这两个库提供了轻量级、高效的解决方案,尤其适合资源有限的环境,如移动设备或嵌入式系统。 首先,让我们深入了解`kxml2`。...

    kxml2-2.3.0.jar+xmlpull_1_1_3_4c.jar

    KXML2是一个小型、快速且易于使用的XML解析库,适用于Java ME(移动版Java)和Java SE(标准版Java)。它的主要优点是体积小,适合资源有限的环境,如移动设备。KXML2实现了XML流解析API,允许开发者逐个处理XML元素...

    kxml2

    解析xml可能需要用到的jar包:kxml,版本:2.2.1。

Global site tag (gtag.js) - Google Analytics