XmlPullParser 学习笔记
来源:互联网 发布:生死狙击桐哥刷枪软件 编辑:程序博客网 时间:2024/06/06 09:13
在j2me有限的资源上去解释xml是比较慢的,所以j2se上的xml类库是不适合用在j2me上,而XmlPullParser 用起来速度快,而且包也很小。
需求是解释一个标准的wml。比如:
上面是个简单的wml源文件。不过现在的wap网站差不都这样,基本上没有script,跟html上的各个控件。所以能解释上面的文档,基本上都是可以满足我的需求的。
现在我们来看下我们解释wml的java文件
现在解释下上面的东西,
XmlPullParser 只是个规范,可以到http://xmlpull.org/下载。我们来看看这个规范要求我们做些什么。
里面主要的方法有
我们理解了XmlPullParser 可以自己实现一个XmlPullParser。不过java世界里好东西就是多。已经有人帮我们做了。
啊就是kxml。
这个API本身很简单。当时要把一个完整的wml解释并绘制在手机上还是要花相当的时间的。
xml 代码
- <?xml
version="1.0"?> - <!DOCTYPE
wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> - <wml>
- <card
id="index" title="天速"> - <p
align="center">天速科技</p> - <p
align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&ServiceID=03020047"> 动漫天下 </a></p> - <p
align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&ServiceID=03020048&SPURL=http://211.155.31.143/t/viewPic.a?picId=1308"> 国色天香 </a></p> - <p
align="center"><a href="http://wap.gd.monternet.com/reversesubscribe?SPID=819758&ServiceID=04070717&SPURL=http://211.155.31.143/eb/allBook.a"> 风月书斋 -
- </card>
</wml>
上面是个简单的wml源文件。不过现在的wap网站差不都这样,基本上没有script,跟html上的各个控件。所以能解释上面的文档,基本上都是可以满足我的需求的。
现在我们来看下我们解释wml的java文件
java 代码
- import
java.io.ByteArrayInputStream; - import
java.io.IOException; - import
java.io.InputStreamReader; - import
org.kxml2.io.KXmlParser; - import
org.xmlpull.v1.XmlPullParser; - import
org.xmlpull.v1.XmlPullParserException; - import
org.xmlpull.v1.XmlPullParserFactory; - public
class Test { - //private static String xml = "
apple" - // + "orange" + "pear";
- private
static String xml = "" - +"
- +"\"http://www.wapforum.org/DTD/wml_1.1.xml\">"
- +""
- +""
- +"
天速科技
" - +"
动漫天下
" - +"
国色天香
" - +"
风月书斋
" - +" ";
- public
static void main(String args[]) - throws
XmlPullParserException, IOException { - ByteArrayInputStream bin =
new ByteArrayInputStream(xml.getBytes()); - InputStreamReader in =
new InputStreamReader(bin); - KXmlParser parser =
new KXmlParser(); - parser.setInput(in);
- int
eventType = parser.getEventType(); - while
(eventType != XmlPullParser.END_DOCUMENT) { - if
(eventType == XmlPullParser.START_DOCUMENT) { - //System.out.println("Start document:");
- }
else if (eventType == XmlPullParser.END_DOCUMENT) { - //System.out.println("End document");
- }
else if (eventType == XmlPullParser.START_TAG) { - System.out.println(" "
+ parser.getName()); - //System.out.println("Start Count: " + parser.getAttributeCount());
- int
size = parser.getAttributeCount(); - for(int
i= 0; i - System.out.println(" "
+ parser.getAttributeName(i)); - System.out.println(" "
+ parser.getAttributeValue(i)); - }
- }
else if (eventType == XmlPullParser.END_TAG) { - System.out.println(" "
+ parser.getName()); - }
else if (eventType == XmlPullParser.TEXT) { - System.out.println(" "
+ parser.getText()); - }
- eventType = parser.next();
- }
- }
- }
现在解释下上面的东西,
XmlPullParser 只是个规范,可以到http://xmlpull.org/
里面主要的方法有
java 代码
- //定义一个事件采用回调的方式,直到读取xml完毕。
- public
int getEventType() throwsXmlPullParserException ; - //遍历下一个事件,返回一个事件的类型
- public
int next() throwsXmlPullParserException, IOException - //得到当前Tag名字
- public
String getName(); - //获取文本
- public
String getText(); - //得到当前Tag下面的属性数量
- public
int getAttributeCount() ; - //得到当前Tag下面指定位置的属性名称
- public
String getAttributeName( intindex); - //得到当前Tag下面指定位置的属性植
- public
String getAttributeValue( intindex);
我们理解了XmlPullParser 可以自己实现一个XmlPullParser。不过java世界里好东西就是多。已经有人帮我们做了。
啊就是kxml。
这个API本身很简单。当时要把一个完整的wml解释并绘制在手机上还是要花相当的时间的。
- XmlPullParser 学习笔记
- XmlPullParser 学习笔记
- XmLPullParser 笔记
- XmLPullParser 笔记
- Android学习笔记4--XmlPullParser的使用
- XMLPullParser使用笔记(一)
- XmlPullParser
- XMLPULLPARSER
- XmlPullParser
- XmlPullParser
- XmlPullParser
- xmlPullParser
- Android API学习之XmlPullParser
- Android学习笔记(三八):资源resource(上)、XML解析(XmlPullParser)
- Android学习笔记(三八):资源resource(上)、XML解析(XmlPullParser)
- android学习之读取xml文件(使用XmlPullParser)
- android XmlPullParser
- Using XmlPullParser
- BMH文本搜索算法
- 如何阅读别人的代码1
- AppInventor:不需要编写一行代码开发Android程序
- document的window对象
- 如何阅读别人的代码2
- XmlPullParser 学习笔记
- 给计算机系学生的建议
- VBS脚本,中间用到了遍历文件夹,正则匹配。使用了 WScript.Shell 对象的几个方法。
- ArrayList介绍
- getElementById取得文本框中的值
- Oracle时间类型
- NET中的视图和过滤器 (DefaultView和RowFilter)
- 解决A potentially dangerous Request.Form value was detected from the client
- 用C#.NET实现电子邮件客户程序