zoukankan      html  css  js  c++  java
  • java 解析xml文档---通过XmlPullParser解析方式

     1 package com.zx;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.IOException;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 import org.json.JSONException;
     9 import org.xmlpull.v1.XmlPullParser;
    10 import org.xmlpull.v1.XmlPullParserException;
    11 import org.xmlpull.v1.XmlPullParserFactory;
    12 
    13 
    14 
    15 class MyDay17Xml {
    16     
    17     public static void main(String []args) throws JSONException{
    18         
    19     }
    20     
    21     public static List<Person> PullParserXml() throws XmlPullParserException, IOException {
    22         //数据定义
    23         List<Person> list=null;
    24         Person person=null;
    25         //获得xmlpullparser对象
    26         XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
    27         XmlPullParser parser=factory.newPullParser();
    28         //获取输入流
    29         FileInputStream fis=new FileInputStream("person.xml");
    30         //设置流和字符集
    31         parser.setInput(fis,"utf-8");
    32         //开始解析
    33         int event=parser.getEventType();
    34         while(event!=XmlPullParser.END_DOCUMENT){
    35             switch (event){
    36             /**
    37              * 开始标记,通常进行相关集合或者对象的初始化
    38              
    39              */
    40             case XmlPullParser.START_DOCUMENT:
    41                 list=new ArrayList<Person>();
               break;
    42 case XmlPullParser.START_TAG: 43 String tagName=parser.getName(); 44 //得到属性标记通过getName 45 if("person".equals(tagName)){ 46 person=new Person(); 47 //获得标记后的属性值通过getAttributeName和getAttributeValue两个方法 48 for(int i=0;i<parser.getAttributeCount();i++){ 49 String name=parser.getAttributeName(i); 50 String value=parser.getAttributeValue(i); 51 if("id".equals(name)){ 52 person.setId(value); 53 } 54 } 55 }else if("name".equals(tagName)){ 56 //得到属性标记之后的值,通过nextText方法 57 person.setName(parser.nextText()); 58 }else if("age".equals(tagName)){ 59 person.setAge(parser.nextText()); 60 }
               break;
    61 case XmlPullParser.END_TAG: 62 if("person".equals(parser.getName())){ 63 list.add(person); 64 person=null; 65 }
              break;
    66 }
            event=parser.next();
    67 } 68 //解析结束,返回集合 69 return list; 70 } 71 72 } 73 class Person{ 74 private String name,age,id; 75 76 public String getName() { 77 return name; 78 } 79 80 public void setName(String name) { 81 this.name = name; 82 } 83 84 public String getAge() { 85 return age; 86 } 87 88 public void setAge(String age) { 89 this.age = age; 90 } 91 92 public String getId() { 93 return id; 94 } 95 96 public void setId(String id) { 97 this.id = id; 98 } 99 }
  • 相关阅读:
    Falsk的模板分配和蓝图、定制错误信息、 和补充
    Flask配置文件和 路由系统
    初始Flask
    REST Framework组件的解析源码
    MdelForm 和formset
    待修改脚本
    时间打点脚本
    Move Over and Click Link
    Wait and Click Element
    Strings=newString(“xyz”);创建了几个 StringObject?
  • 原文地址:https://www.cnblogs.com/zxxiaoxia/p/4320913.html
Copyright © 2011-2022 走看看