http://lifuping-2008.blog.163.com/blog/static/85869990200911973011318/
1packagestudy;
2
3importjava.io.StringReader;
45org.kxml2.io.KXmlParser;
6org.xmlpull.v1.XmlPullParser;
78/**
9*2008-4-16下午02:29:40
10*
11*@authorzhanghongzhi<br>
12*email:lanfanss@126.com<br>
13*desc:用来学习使用kxml来解析xml<br>
14*书上讲解说,kxml是基于事件模型,按着下边的逻辑来读取标记,start_document-start_tag-text-end_tag-end_document<br>
1516*/1718publicclassReadXmlByKXML{
1920staticvoidmain(String[]args)throwsException{
21XmlPullParserparser=newKXmlParser();
22Stringsample"<questiontext='Isitround?'>\n23+<questiontext='Isitbright?'>\n24<answer>ItistheSun!</answer>\n25<answer>Itisaball!</answer>\n</question>\n26<answer>Idonotknow!</answer>\n;
27System.out.println(-----------待分析的内容------------);
28System.out.println(sample);
29---------------------------------30parser.setInput(StringReader(sample));
31//获取事件类型32inteventTypeparser.getEventType();
33如果不是整个文档的结尾,那么就读取,这样子就达到遍历整个文档的目的34while(eventType!=XmlPullParser.END_DOCUMENT){
35访问文档根节点36if==XmlPullParser.START_DOCUMENT){
37当前节点的名称:parser.getName());
38当前节点下的属性:39attrCountparser.getAttributeCount();
40for(i0;i<attrCount;i++){
41System.out.println(parser.getAttributeName(i));
42}
43}elseXmlPullParser.START_TAG){
44System.out
45.println(---------starttag------------------------------4647484950System.out.println(parser.getAttributeName(i):51parser.getAttributeValue(i));
5253这里可以根据不同的节点名称来作出不同的反应,比如text需要单独处理什么5455XmlPullParser.TEXT){
56---------texttag---------57已经取不到值了58本text属于:59System.out.println(parser.getText());
60XmlPullParser.END_TAG){
61---------endtag---------62当前节点的名称63可以在这里把本tag的内容处理掉,比如类似将其放到某个容器中6465parser.next();
666768}