隨筆-60  評論-138  文章-1  trackbacks-0
          最近工作重點不在于網站了,而是轉到了新的手機地圖組.第一樣任務就是看懂手機地圖1.1的代碼,包括網絡連接,ui包,事件交互,地圖展示,jsr175,j2mepolish等等!
          很久沒有這么辛苦的學習了,另外,最近留了胡子。
          接下來,把剛剛學習的解析xml的代碼放在這里備忘。
           1 package study;
           2 
           3 import java.io.StringReader;
           4 
           5 import org.kxml2.io.KXmlParser;
           6 import org.xmlpull.v1.XmlPullParser;
           7 
           8 /**
           9  * 2008-4-16下午02:29:40
          10  * 
          11  * @author zhanghongzhi<br>
          12  *         email:lanfanss@126.com<br>
          13  *         desc:用來學習使用kxml來解析xml<br>
          14  *         書上講解說,kxml是基于事件模型,按著下邊的邏輯來讀取標記,start_document-start_tag-text-end_tag-end_document<br>
          15  * 
          16  */
          17 
          18 public class ReadXmlByKXML {
          19 
          20     public static void main(String[] args) throws Exception {
          21         XmlPullParser parser = new KXmlParser();
          22         String sample = "<question text='Is it round?'>\n"
          23                 + " <question text='Is it bright?'>\n"
          24                 + "  <answer>It is the Sun!</answer>\n"
          25                 + "  <answer>It is a ball!</answer>\n" + " </question>\n"
          26                 + " <answer>I do not know!</answer>\n" + "</question>\n";
          27         System.out.println("-----------待分析的內容------------");
          28         System.out.println(sample);
          29         System.out.println("---------------------------------");
          30         parser.setInput(new StringReader(sample));
          31         // 獲取事件類型
          32         int eventType = parser.getEventType();
          33         // 如果不是整個文檔的結尾,那么就讀取,這樣子就達到遍歷整個文檔的目的
          34         while (eventType != XmlPullParser.END_DOCUMENT) {
          35             // 訪問文檔根節點
          36             if (eventType == XmlPullParser.START_DOCUMENT) {
          37                 System.out.println("當前節點的名稱:" + parser.getName());
          38                 System.out.println("當前節點下的屬性:");
          39                 int attrCount = parser.getAttributeCount();
          40                 for (int i = 0; i < attrCount; i++) {
          41                     System.out.println(parser.getAttributeName(i));
          42                 }
          43             } else if (eventType == XmlPullParser.START_TAG) {
          44                 System.out
          45                         .println("---------start tag------------------------------");
          46                 System.out.println("當前節點的名稱:" + parser.getName());
          47                 System.out.println("當前節點下的屬性:");
          48                 int attrCount = parser.getAttributeCount();
          49                 for (int i = 0; i < attrCount; i++) {
          50                     System.out.println(parser.getAttributeName(i) + ":"
          51                             + parser.getAttributeValue(i));
          52                 }
          53                 // 這里可以根據不同的 節點名稱來作出不同的反應,比如text需要單獨處理什么
          54 
          55             } else if (eventType == XmlPullParser.TEXT) {
          56                 System.out.println("---------text tag---------");
          57                 // 已經取不到值了
          58                 System.out.println("本text屬于:" + parser.getName());
          59                 System.out.println(parser.getText());
          60             } else if (eventType == XmlPullParser.END_TAG) {
          61                 System.out.println("---------end tag---------");
          62                 System.out.println("當前節點的名稱" + parser.getName());
          63                 // 可以在這這里把本tag的內容處理掉,比如類似將其放到某個容器中
          64             }
          65             eventType = parser.next();
          66         }
          67     }
          68 }


          posted on 2008-04-16 15:33 張氏兄弟 閱讀(3382) 評論(11)  編輯  收藏 所屬分類: 51ditu.com

          評論:
          # re: 使用kxml解析xml 2008-07-18 10:10 | 猴哥
          謝謝了。  回復  更多評論
            
          # re: 使用kxml解析xml 2008-08-12 15:20 | dance_elephant
          謝謝啦,
            回復  更多評論
            
          # re: 使用kxml解析xml 2008-08-22 10:44 | 鮑鮑
          不錯,頂下!  回復  更多評論
            
          # re: 使用kxml解析xml 2008-09-01 15:03 | 鮑鮑
          不錯。非常感謝。我QQ 459048119 ,有空交流一下。  回復  更多評論
            
          # re: 使用kxml解析xml[未登錄] 2008-09-16 13:45 | Frank
          請將import java.io.StringReader也貼出來學習下吧!  回復  更多評論
            
          # re: 使用kxml解析xml 2008-10-12 08:06 | 張氏兄弟
          @Frank
          這個是基本的類啊,老兄玩笑了吧!  回復  更多評論
            
          # re: 使用kxml解析xml[未登錄] 2008-11-25 10:00 | 風之子
          在PC上的應用程序用什么解析xml和wbxml好呢?
          我剛接觸java,多謝不吝指教。  回復  更多評論
            
          # re: 使用kxml解析xml 2008-11-25 13:44 | 宏志
          pc上不應該使用這個了,我常用jdom來解析,很簡單的,看看他的demo和doc就ok了!  回復  更多評論
            
          # re: 使用kxml解析xml 2008-12-10 15:01 | goldroad
          非常好!正需要這個呢!謝謝啦!  回復  更多評論
            
          # re: 使用kxml解析xml 2008-12-16 12:48 | delguoqing
          請問一下kxml的包哪里有?  回復  更多評論
            
          # re: 使用kxml解析xml[未登錄] 2009-04-14 10:03 | tomcat
          java.io.StringReader 是J2SE中的,大哥你在J2SE中調試KXML有啥意義

          還有代碼貼上后帶行號是好習慣,但是行號能被復制就是沒素質了

          共享是一種精神,但不經大腦的共享是神精  回復  更多評論
            
          主站蜘蛛池模板: 慈利县| 宁都县| 绥宁县| 平山县| 六安市| 乐都县| 乌拉特后旗| 张家港市| 张北县| 定安县| 肥乡县| 绥芬河市| 永定县| 西安市| 宁陵县| 广昌县| 淮北市| 当涂县| 德惠市| 集贤县| 广德县| 平山县| 泾川县| 永福县| 团风县| 全椒县| 奇台县| 蓬溪县| 华安县| 建水县| 松溪县| 革吉县| 连云港市| 昌都县| 龙南县| 德庆县| 大竹县| 灵台县| 澳门| 儋州市| 蓝山县|