<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    路是爬出來的

    XmlPullParser 的例子

         這幾天一直在思考怎么樣設計Wap的引擎。因為在j2me有限的資源上去解釋xml是比較慢的,所以j2se上的xml類庫是不適合用在j2me上,后來在網上查找了下發現了XmlPullParser ,而且用起來速度快,而且包也很小。現在把這兩天學到的知識記錄下來。



         我的需求是解釋一個標準的wml。比如:

       

    java 代碼


     


    1. <?xml version="1.0"?>  

    2. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"


    3. "http://www.wapforum.org/DTD/wml_1.1.xml">  

    4. <wml>  

    5. <card id="index" title="天速">  

    6. <p align="center">天速科技</p>  

    7. <p align="center"><a href="/t/main.a"> 動漫天下 </a></p>  

    8. <p align="center"><a href="/t/main.a"> 國色天香 </a></p>  

    9. <p align="center"><a href="/eb/main.a">  風月書齋 </a></p>  

    10.   

    11. </card> </wml>  



    上面是個簡單的wml源文件。不過現在的wap網站差不都這樣,基本上沒有script,跟html上的各個控件。所以能解釋上面的文檔,基本上都是可以滿足我的需求的。



     現在我們來看下我們解釋wml的java文件
    java 代碼


     


    1. /******************************************************************** 

    2.  * 項目名稱             :<b>j2me學習 J2me Wap Explorer</b>            <br/> 

    3.  *  

    4.  * Copyright 2005-2006 Wuhua. All rights reserved </br> 

    5.  * 

    6.  * 本程序只用于學習目的,不能用于商業目的。如有需要請聯系作者 

    7.  ********************************************************************/  

    8.   

    9. import java.io.ByteArrayInputStream;  

    10. import java.io.IOException;  

    11. import java.io.InputStreamReader;  

    12.   

    13. import org.kxml2.io.KXmlParser;  

    14. import org.xmlpull.v1.XmlPullParser;  

    15. import org.xmlpull.v1.XmlPullParserException;  

    16. import org.xmlpull.v1.XmlPullParserFactory;  

    17. /** 

    18.  * <b>類名:Test.java</b> </br> 編寫日期: 2006-12-28 <br/> 程序功能描述: <br/> Demo: <br/> 

    19.  * Bug: <br/> 

    20.  *  

    21.  * 程序變更日期 :<br/> 變更作者 :<br/> 變更說明 :<br/> 

    22.  *  

    23.  * @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a> 

    24.  */  

    25. public class Test {  

    26.   

    27.     //private static String xml = "<list><item>apple</item>"  

    28.         //  + "<item>orange</item>" + "<item>pear</item></list>";  

    29.   

    30.     private static String xml ="<?xml version=\"1.0\"?>"  

    31.     +"<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" "   

    32.     +"\"http://www.wapforum.org/DTD/wml_1.1.xml\">"  

    33.     +"<wml>"  

    34.     +"<card id=\"index\" title=\"天速\">"  

    35.     +"<p align=\"center\">天速科技</p>"  

    36.     +"<p align=\"center\"><a href=\"/t/main.a\"> 動漫天下 </a></p>"  

    37.     +"<p align=\"center\"><a href=\"/t/main.a\"> 國色天香 </a></p>"  

    38.     +"<p align=\"center\"><a href=\"/eb/main.a\">  風月書齋 </a></p>"  

    39.   

    40.     +"</card> </wml>";  

    41.     public static void main(String args[])  

    42.   

    43.     throws XmlPullParserException, IOException {  

    44.            

    45.            

    46.         ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes());  

    47.         InputStreamReader in = new InputStreamReader(bin);  

    48.         KXmlParser parser = new KXmlParser();  

    49.         parser.setInput(in);  

    50.   

    51.         int eventType = parser.getEventType();  

    52.         while (eventType != XmlPullParser.END_DOCUMENT) {  

    53.             if (eventType == XmlPullParser.START_DOCUMENT) {  

    54.                 //System.out.println("Start document:");  

    55.             } else if (eventType == XmlPullParser.END_DOCUMENT) {  

    56.                 //System.out.println("End document");  

    57.             } else if (eventType == XmlPullParser.START_TAG) {  

    58.                 System.out.println("  " + parser.getName());  

    59.                 //System.out.println("Start Count: " + parser.getAttributeCount());  

    60.                 int  size = parser.getAttributeCount();  

    61.                 for(int i=0; i<size; i++){  

    62.                     System.out.println("  " + parser.getAttributeName(i));  

    63.                     System.out.println("  " + parser.getAttributeValue(i));  

    64.                 }  

    65.                    

    66.                   

    67.             } else if (eventType == XmlPullParser.END_TAG) {  

    68.                 System.out.println(" " + parser.getName());  

    69.             } else if (eventType == XmlPullParser.TEXT) {  

    70.                 System.out.println("  " + parser.getText());  

    71.             }  

    72.             eventType = parser.next();  

    73.         }  

    74.     }  

    75.   








    現在解釋下上面的東西,

    XmlPullParser 只是個規范,可以到http://xmlpull.org/ 下載。我們來看看這個規范要求我們做些什么。

    里面主要的方法有
    java 代碼


     


    1. //定義一個事件采用回調的方式,直到讀取xml完畢。  

    2. public int getEventType() throws XmlPullParserException ;  

    3. //遍歷下一個事件,返回一個事件的類型  

    4. public int next() throws XmlPullParserException, IOException  

    5. //得到當前Tag名字  

    6. public String getName();  

    7. //獲取文本  

    8. public String getText();  

    9.   

    10. //得到當前Tag下面的屬性數量  

    11. public int getAttributeCount() ;  

    12. //得到當前Tag下面指定位置的屬性名稱  

    13. public String getAttributeName(int index);  

    14.   

    15. //得到當前Tag下面指定位置的屬性植  

    16. public String getAttributeValue(int index);  





    我們理解了XmlPullParser 可以自己實現一個XmlPullParser。不過java世界里好東西就是多。已經有人幫我們做了。

    啊就是kxml。

    這個API本身很簡單。當時要把一個完整的wml解釋并繪制在手機上還是要花相當的時間的。

    posted on 2006-12-30 09:06 路是爬出來的 閱讀(557) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产高清在线免费视频| 亚洲a∨国产av综合av下载| 亚洲国产精品成人综合久久久| 两性色午夜免费视频| 一个人看www在线高清免费看| 亚洲AV中文无码乱人伦在线视色 | 国产福利免费观看| 亚洲精品成a人在线观看夫| 成人黄软件网18免费下载成人黄18免费视频| 日韩一级视频免费观看| 亚洲人成依人成综合网| 亚洲欧洲免费视频| 亚洲一区精彩视频| 玖玖在线免费视频| 免费a级毛片大学生免费观看| 亚洲黄色在线观看网站| 中文字幕影片免费在线观看| 亚洲欧美日韩一区二区三区 | 亚洲国产精品无码AAA片| 久久99精品免费视频| 国产免费观看黄AV片| 一区二区免费电影| 国产在线观看免费视频播放器| 亚洲高清无在码在线电影不卡| 久久久久久国产a免费观看黄色大片| 亚洲综合一区二区三区四区五区| 国产jizzjizz免费视频| 亚洲免费中文字幕| 99视频在线看观免费| 亚洲男人天堂2022| 国产成人无码免费看视频软件 | 亚洲欧洲久久av| 亚洲风情亚Aⅴ在线发布| 日本h在线精品免费观看| 亚洲日本VA中文字幕久久道具| 精品无码国产污污污免费网站| 亚洲中文无码亚洲人成影院| 精品女同一区二区三区免费站| 亚洲av无码有乱码在线观看| 精品亚洲综合在线第一区| 免费无码又爽又刺激高潮软件|