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是一个强大且实用的XML解析库,它的源码揭示了XML解析的底层机制,对于理解XML处理和提升编程技能具有重要价值。通过深入研究org包中的源码,开发者可以更好地掌握XML解析的技巧,提升自己的开发能力...
kXML是一个轻量级、快速且高效的XML解析器,尤其适用于资源有限的环境,如移动设备或嵌入式系统。 kXML库由Kohsuke Kawaguchi创建,它提供了DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式...
在Android开发中,XML解析是处理XML文档不可或缺的技术,主要包括DOM(Document Object Model)、SAX(Simple API for XML)、PULL(Pull Parser)以及KXML2等方法。这里我们将详细探讨“xml解析+kxml2+xmlpull”...
- **J2ME环境限制**:Java 2 Micro Edition (J2ME) 是为移动设备设计的Java平台版本,早期由于移动设备资源限制(如内存和处理器性能较低),MIDP 1.0并未内置XML解析功能。 #### 2. J2ME中XML的支持 - **JSR 182...
基于j2me和kxml对XML文档进行解析的一个小程序。用来在手机上看看德语单词。
J2ME 中 KXML2 解析器解析 xml 文件源代码所需要的压缩包 kxml2-min-2.3.0.jar。
KXML2是一个用于Java平台上的轻量级XML解析库,主要应用于移动设备等资源受限的环境中。它采用Pull解析模式,即开发者通过一系列方法调用来“拉取”XML文档中的数据,而不是由解析器主动推送数据给应用程序。这种...
"j2me处理xml的jar包(kxml2-2.3.0.jar)"是专为J2ME环境设计的一个轻量级XML解析库,它允许开发者在资源有限的移动设备上有效地解析和生成XML文档。这个库的名称为KXML2,版本号为2.3.0,提供了与Java标准版(Java ...
kxml2是一个轻量级的XML解析库,它在Java平台上运行,并且是XML Pull解析器的实现之一。XML Pull是一种处理XML文档的事件驱动模型,允许开发者通过一系列的读取操作来解析XML数据,而无需构建整个XML文档树。这种...
《深入解析KXML2.3.0:J2ME中的XML解析框架》 XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java Micro Edition(J2ME)环境中,由于资源有限,对...
1. **KXML库**:KXML是轻量级的XML解析库,特别适合资源有限的J2ME环境。它提供了SAX(Simple API for XML)解析器的简化版本,通过事件驱动的方式处理XML文档。 2. **NanoXML**:另一个轻量级的XML解析库,它使用...
J2ME中使用KXML解释XML文件 J2ME中使用KXML解释XML文件
XML解析是Android应用程序处理这些数据的关键步骤。本资料包“android解析xml源码和ppt”提供了关于Android系统如何解析XML以及相关PPT的深入讲解。以下是关于这个主题的详细知识点: 1. XML解析器类型: - DOM...
《深入解析kxml2-2.2.2.jar:Android XML解析的重要库》 XML(eXtensible Markup Language)是一种被广泛应用于网络数据交换的标准格式,尤其在Android开发中,XML用于布局文件、配置文件等多种场景。在Android平台...
XML(eXtensible Markup Language)是一种用于存储和传输...在项目中,选择合适的XML解析方法至关重要,因为它直接影响到程序的性能和可维护性。了解并掌握这三种解析方式,可以帮助开发者针对不同的场景做出最佳决策。
这两个库常常一起使用,xmlpull-1.1.3.1.jar提供底层的XMLPULL解析功能,而kxml2-2.3.0.jar则在其之上构建了更高级的抽象层,使得XML解析更加便捷。在实际项目中,开发者通常会导入这两个JAR包,通过KXML2的API来...
KXML2是一个轻量级的XML解析器,它实现了XML Pull解析API(XMLPullParser),这是用于读取XML数据的一种高效且低内存占用的方法。这个版本2.3.0是该库的一个特定发行版,可能包含了性能优化、错误修复或新功能。 在...
KXML2,作为一个轻量级的XML解析库,尤其在J2ME(Java 2 Micro Edition)环境中,它扮演了重要的角色。J2ME是Java平台的一个子集,主要用于嵌入式设备,如手机、智能手表等,而这些设备往往资源有限,因此需要高效且...
"kxml2-2.3.0.jar" 和 "xmlpull_1_1_3_4c.jar" 是两个关键的库文件,专门用于XML解析。这两个库提供了轻量级、高效的解决方案,尤其适合资源有限的环境,如移动设备或嵌入式系统。 首先,让我们深入了解`kxml2`。...
KXML2是一个小型、快速且易于使用的XML解析库,适用于Java ME(移动版Java)和Java SE(标准版Java)。它的主要优点是体积小,适合资源有限的环境,如移动设备。KXML2实现了XML流解析API,允许开发者逐个处理XML元素...