在j2me有限的资源上去解释xml是比较慢的,所以j2se上的xml类库是不适合用在j2me上,而
XmlPullParser 用起来速度快,而且包也很小。
需求是解释一个标准的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"> 风月书斋 </a></p>
-
- </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