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

kxml 解析xml

    博客分类:
  • j2me
阅读更多

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 HttpServletXml3 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 HttpServletXml3() {
    }

    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><aa>abcd</aa></text>"
                       +"<text>text2</text>"
                       +"<abc>a</abc>" 
                       +"<abc>b</abc>" 
                       +"</elements>"; 


            try {
                ByteArrayInputStream bin = new ByteArrayInputStream( xml.getBytes() );
                KXmlParser parser = new KXmlParser();
                              
                parser.setInput(new InputStreamReader(bin));   
               
                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");
//                        System.out.println("start count"+parser.getAttributeCount());
//                        int size=parser.getAttributeCount();
//                        for(int i=0;i<size;i++){
//                            System.out.println(parser.getAttributeName(i)+"      getAttributeName(i)");
//                            System.out.println(parser.getAttributeValue(i)+"      getAttributeValue()");
//                        }
                        }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();
                }
//                start
//                elements      START_TAG
//                start count0
//                text      START_TAG
//                start count0
//                aa      START_TAG
//                start count0
//                abcd      getText()
//                aa      END_TAG
//                text      END_TAG
//                text      START_TAG
//                start count0
//                text2      getText()
//                text      END_TAG
//                abc      START_TAG
//                start count0
//                a      getText()
//                abc      END_TAG
//                abc      START_TAG
//                start count0
//                b      getText()
//                abc      END_TAG
//                elements      END_TAG
   
            } catch (Exception e) {
                e.printStackTrace();
   
            }
        }
       
    }

}

 

 

2

 

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 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 xml="<elements>" 
                       +"<text>text1</text>" 
                       +"<text>text2</text>" 
                       +"</elements>"; 

            try {
                ByteArrayInputStream bin = new ByteArrayInputStream( xml.getBytes() );
                KXmlParser parser = new KXmlParser();
                              
                parser.setInput(new InputStreamReader(bin));   
               
                System.out.println(XmlPullParser.START_TAG); //2
                System.out.println(XmlPullParser.END_TAG);  //3           
                 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");  

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

}

 

分享到:
评论

相关推荐

    kxml解析需要用到得的jar包

    使用kXML解析XML的基本流程如下: 1. **DOM解析**:如果你选择DOM解析,首先需要创建`XmlPullParserFactory`实例,然后使用`newPullParser()`方法获取`XmlPullParser`对象。接着,调用`setInput()`方法设置输入源...

    kxml源码 org包 xml解析文件包

    《深入理解KXML:解析XML的核心技术》 KXML,全称为Kotlin XML,是一个轻量级、高效的XML解析库,特别适用于Java平台。在Android开发中,由于其小巧的体积和良好的性能,KXML经常被用作XML解析的替代方案。本篇文章...

    xml解析+kxml2+xmlpull

    以上就是关于“xml解析+kxml2+xmlpull”的主要知识点,包括XML解析方式、KXML2解析库、XML Pull解析的原理及其实现,以及如何在实际项目中结合使用KXML2进行XML文档的解析。理解并掌握这些内容,将有助于你在处理XML...

    基于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解析XML文档时遇到了一个特殊的问题:无法直接提取`&lt;script&gt;`标签中的内容。这主要是因为XML解析器通常会忽略`&lt;script&gt;`标签内的文本内容,将其视为脚本而非普通文本。对于这种情况,...

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

    使用KXML2解析XML的基本步骤如下: 1. 引入库:首先,你需要在项目的类路径中包含kxml2-2.3.0.jar或kxml2-min-2.3.0.jar。 2. 创建解析器:使用`XmlParser`类创建一个解析器对象,通常通过传递输入流(InputStream...

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

    之后,就可以利用kxml2提供的类和方法来解析XML文档。 8. **核心类和方法**:kxml2的主要类包括`XmlPullParser`和`XmlSerializer`。前者用于解析XML,后者用于生成XML。通过调用这些类的方法,如`next()`、`getName...

    kxml2.3.0 源码

    4.1 `org.kxml2.io.KXmlParser`:这是XMLReader的主要实现类,负责解析XML输入流并触发解析事件。 4.2 `org.kxml2.kdom.Node`:这个类是解析结果的基本元素节点,包括元素、文本、注释等。 4.3 `org.kxml2.wap....

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

    **标题:“kuixdemo-1.0.0 (J2ME下解析xml文件)”,意味着这是一个专门用于在Java 2 Micro Edition (J2ME)环境中解析XML文件的示例程序。** **描述:“在J2ME下对XML文件进行解析的示例源码及帮助文件”指出,该...

    android解析xml源码和ppt.zip

    本资料包“android解析xml源码和ppt”提供了关于Android系统如何解析XML以及相关PPT的深入讲解。以下是关于这个主题的详细知识点: 1. XML解析器类型: - DOM(Document Object Model)解析器:它一次性加载整个...

    kxml2-2.2.2.jar

    在Android平台,解析XML的方式多种多样,其中之一就是使用kxml2库。kxml2是一个轻量级、快速的XML解析器,适用于资源有限的设备,如移动设备。本文将深入探讨kxml2-2.2.2.jar这一版本的库,揭示其在XML解析中的重要...

    kjava开发手册--介绍j2me开发的一些实践

    KXML是轻量级的XML解析库,适用于资源有限的J2ME环境,可用于处理XML数据的读取和写入。 5. 相关 J2ME 组件的说明 5.1. DISPLAY、DISPLAYABLE 和 SCREENS DISPLAY是J2ME中管理显示屏幕的对象,DISPLAYABLE代表可...

    xml三种解析方法实现

    例如,在Java中,SAX解析可以使用`org.xml.sax`包,DOM解析可以使用`javax.xml.parsers`包,而XML Pull解析可以使用`org.xmlpull.v1`包(如kxml2或StaX)。在实现时,需要根据解析方法的特性编写相应的代码逻辑,...

    kxml2_doc_src

    《深入理解KXML2:解析XML的J2ME利器》 KXML2,作为一个轻量级的XML解析库,尤其在J2ME(Java 2 Micro Edition)环境中,它扮演了重要的角色。J2ME是Java平台的一个子集,主要用于嵌入式设备,如手机、智能手表等,...

    kxml2_2.3.0.jar

    在实际开发中,使用KXML2解析XML的步骤大致如下: 1. 创建XMLPullParser对象,通常通过XMLPullParserFactory的newInstance()方法,并指定KXML2的类路径。 2. 调用setInput()方法,传入XML的输入流或字符序列。 3. ...

    kxml2-2.3.0.jar_和_xmlpull_1_1_3_4c.jar

    在Java开发中,处理XML数据是一项常见的任务,无论是读取配置文件、交换数据还是解析XML文档,都需要高效的解析工具。"kxml2-2.3.0.jar" 和 "xmlpull_1_1_3_4c.jar" 是两个关键的库文件,专门用于XML解析。这两个库...

    kxml2-2.3.0.jar+xmlpull_1_1_3_4c.jar

    为了高效地解析XML文档,开发者通常会使用解析器库,如KXML2和XMLPull。这两个库在Java环境中为XML解析提供了轻量级、高效的解决方案。 KXML2是一个小型、快速且易于使用的XML解析库,适用于Java ME(移动版Java)...

    kxml2-2.2.2

    KXML2-2.2.2是一个轻量级的XML解析库,专为Java平台设计,尤其适用于资源有限的设备,如智能手机和平板电脑。它提供了两种解析方式:SAX(Simple API for XML)和Pull解析,本文将主要探讨其在Android中应用的Pull...

Global site tag (gtag.js) - Google Analytics