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

XmlPullParser 的例子

    博客分类:
  • J2ME
阅读更多
这几天一直在思考怎么样设计Wap的引擎。因为在j2me有限的资源上去解释xml是比较慢的,所以j2se上的xml类库是不适合用在j2me上,后来在网上查找了下发现了XmlPullParser ,而且用起来速度快,而且包也很小。现在把这两天学到的知识记录下来。

我的需求是解释一个标准的wml。比如:
xml 代码
 
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">  
  3. <wml>  
  4. <card id="index" title="天速">  
  5. <p align="center">天速科技</p>  
  6. <p align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&amp;ServiceID=03020047"> 动漫天下 </a></p>  
  7. <p align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&amp;ServiceID=03020048&amp;SPURL=http://211.155.31.143/t/viewPic.a?picId=1308"> 国色天香 </a></p>  
  8. <p align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&amp;ServiceID=04070717&amp;SPURL=http://211.155.31.143/eb/allBook.a">  风月书斋 </a></p>  
  9.   
  10. </card> </wml>  

上面是个简单的wml源文件。不过现在的wap网站差不都这样,基本上没有script,跟html上的各个控件。所以能解释上面的文档,基本上都是可以满足我的需求的。

现在我们来看下我们解释wml的java文件
java 代码
  1. /********************************************************************
  2. * 项目名称 :j2me学习 J2me Wap Explorer
  3. *
  4. * Copyright 2005-2006 Wuhua. All rights reserved
  5. *
  6. * 本程序只用于学习目的,不能用于商业目的。如有需要请联系作者
  7. ********************************************************************/
  8. import java.io.ByteArrayInputStream;
  9. import java.io.IOException;
  10. import java.io.InputStreamReader;
  11. import org.kxml2.io.KXmlParser;
  12. import org.xmlpull.v1.XmlPullParser;
  13. import org.xmlpull.v1.XmlPullParserException;
  14. import org.xmlpull.v1.XmlPullParserFactory;
  15. /**
  16. * 类名:Test.java
    编写日期: 2006-12-28
    程序功能描述:
    Demo:
  17. * Bug:
  18. *
  19. * 程序变更日期 :
    变更作者 :
    变更说明 :
  20. *
  21. * @author wuhua
    rrq12345@163.com
  22. */
  23. public class Test {
  24. //private static String xml = " <list><item>apple</item>"</list>
  25. // + "<item>orange</item>" + "<item>pear</item>";
  26. private static String xml =""
  27. +"
  28. +"\"http://www.wapforum.org/DTD/wml_1.1.xml\">"
  29. +"<wml>"</wml>
  30. +"<card title="\&quot;天速\&quot;" id="\&amp;quot;index\&quot;">"</card>
  31. +"

    天速科技

    "
  32. +"

    int index);


我们理解了XmlPullParser 可以自己实现一个XmlPullParser。不过java世界里好东西就是多。已经有人帮我们做了。
啊就是kxml。
这个API本身很简单。当时要把一个完整的wml解释并绘制在手机上还是要花相当的时间的。
评论
6 楼 wuhua 2007-01-08  
哈哈。谢谢关注与支持,我会继续努力搞好自己的blog,并且多与大家交流技术,希望可以相互提高各自的水平,这样可以更深入的去探讨比较东西。
5 楼 tianshui 2007-01-08  
-.-我是初学者 

经常关注楼主的帖子  收获很大
4 楼 wuhua 2007-01-04  
在设计的过程中发现容错性是很重要的。
我现在就遇到这个问题,解释wml的时候,遇到 &nbsp;这些特殊符合就抛出异常。很是郁闷。主要的是kml抛出异常后,就停止解释了。要改装下它。不过wml文件是否很标准也一定要解释完毕。就想firefox解释html一样。
3 楼 alin_ass 2007-01-04  
我用kml实现过类似burlap的玩意,现在JDK6.0已经有实现了StAX(JSR 173)


不过这一块挺适合重复造轮子的,我原来碰到就是公司有xml协议不是规范的,比如<class#>什么这种,就自己改kml
2 楼 taowen 2007-01-04  
pull parser为什么快?sax parser为什么慢?我觉得这是关键。我曾经在delphi上把一个sax parser改装成pull parser。其实很简单,只要把回调的API改成基于循环的主动查询。做的是减法。
1 楼 为你而来 2007-01-04  
支持,继续努力!!!!

相关推荐

    android使用XmlPullParser来解析XML文件的一个例子

    为了高效地解析XML,Android提供了多种方式,其中XmlPullParser是一个非常重要的解析工具。本篇文章将详细探讨如何在Android中使用XmlPullParser来解析XML文件,并通过一个具体的WeiboTest示例进行说明。 首先,...

    xml解析讲解例子

    本讲解将深入探讨XML解析在Android中的应用,并通过具体的例子"XmlResTest"来辅助理解。 一、XML基础 XML是一种可扩展的标记语言,与HTML类似,但更注重数据的结构和语义。XML文档由元素(Element)、属性...

    Android RSS小例子 获取网易新闻链接

    Android提供了XmlPullParser类来处理XML数据。下面是一个解析RSS feed并提取链接的示例: ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory....

    xml PULL解析的一个小例子

    在Android项目中,我们可以使用`org.xmlpull.v1.XmlPullParser`接口来实现XML Pull解析。首先,我们需要创建一个`XmlPullParserFactory`实例,然后用这个工厂创建`XmlPullParser`对象。接着,我们设置解析器的输入源...

    android天气预报例子

    XML数据则可使用`XmlPullParser`。解析后,这些数据可以存储在`ArrayList`、`HashMap`或其他数据结构中,供UI显示。 4. **Android UI设计**:展示天气信息通常会涉及多个Android组件,如`TextView`用于显示文字信息...

    C#学习学习例子

    2. **XML解析器**:C#支持多种解析器来读取XML文件,包括`XmlTextReader`和`XmlPullParser`等。它们逐行读取XML文件,减少内存消耗,适用于大型XML文件。 3. **LINQ to XML**:自C# 3.0引入的Language Integrated ...

    android 调用Json xml例子

    以下是一个简单的例子: ```java String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString...

    android解析xml例子

    } else if (eventType == XmlPullParser.END_TAG) { String tagName = parser.getName(); // 处理结束标签 } eventType = parser.next(); } } catch (Exception e) { e.printStackTrace(); } } } ``` 这...

    Android例子源码可以通过网络请求内容的自定义列表选择Dialog

    Android提供了Gson库进行JSON解析,也可以使用像是XmlPullParser这样的API处理XML数据。一旦数据被解析,我们需要将其转化为Java对象,通常是自定义的Model类,例如`DialogItem`,包含列表项的所有属性。 接下来,...

    View_MyXmlParser.zip

    这个例子会打印出每个开始标签和结束标签以及它们的属性,帮助开发者理解XML解析的流程。 在`View_MyXmlParser`项目中,你可以找到具体的实现和示例,进一步学习如何在实际代码中运用`XmlPullParser`。通过分析日志...

    android从基础到精通所有的例子大集合

    Android SDK提供了相应的解析库,如XmlPullParser解析XML,Gson或Jackson处理JSON。 通过深入学习和实践这些例子,开发者可以逐步提高Android开发技能,理解和掌握Android系统的运行机制。同时,不断更新知识,跟进...

    Android经典代码例子

    在Android开发领域,掌握经典代码例子对于提升技能和理解系统工作原理至关重要。下面将详细讨论这些关键知识点: 1. **视频处理**:Android支持多种方式播放和处理视频,如使用`VideoView`或`ExoPlayer`库。`...

    xml创建与解析代码

    在这个例子中,`XmlPullParser`遍历XML文档,当遇到开始标签时,我们检查标签名称,并在找到"child"标签时提取文本内容。 总结来说,`XmlSerializer`和`XmlPullParser`是Java中处理XML的重要工具。`XmlSerializer`...

    android xml pull解析示例

    - 开始解析:首先创建`XmlPullParserFactory`工厂对象,然后通过工厂生成`XmlPullParser`解析器实例。 - 设置输入源:将XML文档的输入源(可能是文件、网络流、字符串等)设置到解析器。 - 迭代事件:调用`next()...

    android中XML的创建与解析

    XmlPullParser解析的例子如下: ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser = factory.newPullParser(); parser.set...

    Android例子源码省市区三联动滚轮选择

    XML解析是Android开发中的常见操作,可以通过`XmlPullParser`或者`SimpleXML`库来实现。解析出的数据会被转换为List或者其他数据结构,用于适配器填充Spinner。 3. **ListView与Adapter**: 虽然标题中没有明确...

    三种XML文件解析例子

    1. 引入`org.xmlpull.v1.XmlPullParserFactory`和`XmlPullParser`,创建`XmlPullParser`实例。 2. 设置输入源,如`setInput`方法传入XML文件的输入流。 3. 通过`next()`方法移动到下一个事件(开始标签、结束标签、...

    使用Android自带的XML解析器PULL解析器简单的解析xml

    以下是一个简单的例子,假设我们有一个`&lt;item&gt;`标签,里面包含`&lt;title&gt;`和`&lt;content&gt;`: ```java if ("item".equals(parser.getName())) { String title = parser.getAttributeValue(null, "title"); String ...

    Android应用源码之ReadXmlByPull1.zip

    《Android应用源码解析:基于Pull解析器读取XML》 在Android开发中,处理XML数据是一项常见的任务,尤其在...通过这个例子,开发者可以掌握基本的XML解析技巧,并将其应用到自己的Android项目中,实现高效的数据处理。

    Android编程创建与解析xml的常用方法详解

    在这个例子中,我们创建了一个简单的XML文件`books.xml`,然后通过DOM和XmlPullParser解析它。DOM解析时,我们获取了所有`&lt;book&gt;`标签,并提取了`title`属性和文本内容。XmlPullParser解析时,我们监听了开始标签...

Global site tag (gtag.js) - Google Analytics