随笔-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 张氏兄弟 阅读(3323) 评论(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有啥意义

还有代码贴上后带行号是好习惯,但是行号能被复制就是没素质了

共享是一种精神,但不经大脑的共享是神精  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: