zoukankan      html  css  js  c++  java
  • android——使用pull解析xml文件

    1、persons.xml

       将persons.xml文件放到src目录下。其代码如下:

    <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
    <persons>
    	<person id="1">
    		<name>范冰冰</name>
    		<age>31</age>
    	</person>
    	<person id="2">
    		<name>林志玲</name>
    		<age>38</age>
    	</person>
    	<person id="3">
    		<name>章泽天</name>
    		<age>20</age>
    	</person>
    </persons>


    2、Person

    新建一个名叫Person的javabean,代码如下:

    package com.njupt.xml1;
    
    public class Person {
    
    	private Integer id;
    	private String name;
    	private Integer age;
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Integer getAge() {
    		return age;
    	}
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    	@Override
    	public String toString() {
    		return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
    	}
    	
    	
    	public Person() {
    		super();
    	}
    	
    	
    	public Person(Integer id, String name, Integer age) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.age = age;
    	}
    	
    	
    	
    }
    


    3、PersonService

        在这里使用android中已经集成的pull来解析xml文件,代码如下:

    package com.njupt.xml1;
    
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.xmlpull.v1.XmlPullParser;
    import org.xmlpull.v1.XmlPullParserException;
    
    import android.util.Xml;
    
    public class PersonService {
    
    	public List<Person> loadPersons(InputStream in) throws Exception{
    		XmlPullParser parser = Xml.newPullParser();
    		parser.setInput(in,"UTF-8");
    		
    		List<Person> persons = new ArrayList<Person>();
    		Person p = null;
    		
    		for(int type = parser.getEventType() ; type != XmlPullParser.END_DOCUMENT; type = parser.next()){
    			if( type == XmlPullParser.START_TAG){
    				if( parser.getName().equals("person")){
    					p = new Person();
    					String id = parser.getAttributeValue(0);
    					p.setId(Integer.parseInt(id));
    					
    					persons.add(p);
    				}else if(parser.getName().equals("name")){
    					String name = parser.nextText();
    					p.setName(name);
    					
    				}else if(parser.getName().equals("age")){
    					String age = parser.nextText();
    					p.setAge(Integer.parseInt(age));
    				}
                   
    				
    			}
    		}
    		
    		return persons;
    	}
    	
    }
    


    ==================================================================

    另附上android中测试时,xml中需要配置的两段代码:

     <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.njupt.xml1" />
        <uses-library android:name="android.test.runner" />


    最后运行的结果是:



       

  • 相关阅读:
    18-10-11 关于触发器的学习
    18-10-29 关于设计器机器人等安装遇到的问题的解决方法
    18-10-25 全局函数测试总结 创建时间的目录 网页获取数据 写入数据
    18-09-08 关于Linux 的安装遇到的一些小坑
    18-08-27 机器人自动化之页面表格数据的定位拾取
    day 96 关于分页的使用
    day73 母版 中间件
    通过 U 盘启动重装 macOS 系统
    MAMP 环境下为 php 添加 pcntl 扩展
    使用 Composer 安装 Laravel 框架
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3151302.html
Copyright © 2011-2022 走看看