最近工作重点不在于网站了,而是转到了新的手机地图组.第一样任务就是看懂手机地图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
张氏兄弟 阅读(3330)
评论(11) 编辑 收藏 所属分类:
51ditu.com