XMLParaser 解析 xml

XMLParaser 解析 xml1.首先附上要解析的xml数据2.根据xml的结果设计JavaBean3.点击按钮开始解析

1.首先附上要解析的xml数据

<?xml version="1.0" encoding="utf-8"?>
<weather>
	<city>
		<name>西安</name>
		<temp>23</temp>
		<pm25>40</pm25>
	</city>
	<city>
		<name>郑州</name>
		<temp>26</temp>
		<pm25>100</pm25>
	</city>
	<city>
		<name>镇巴</name>
		<temp>28</temp>
		<pm25>800</pm25>
	</city>
</weather>

2.根据xml的结果设计JavaBean

package domain;

public class City {
	private String name;
	private String temp;
	private String pm25;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTemp() {
		return temp;
	}
	public void setTemp(String temp) {
		this.temp = temp;
	}
	public String getPm25() {
		return pm25;
	}
	public void setPm25(String pm25) {
		this.pm25 = pm25;
	}
	@Override
	public String toString() {
		return "City [name=" + name + ", temp=" + temp + ", pm25=" + pm25 + "]";
	}
	
}

3.点击按钮开始解析

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;

import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import domain.City;

public class MainActivity extends Activity {
	List<City> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }
    
    public void click(View v){
    	//获取天气xml文件
    	InputStream is = getClassLoader().getResourceAsStream("weather.xml");
    	
    	//获取xml解析器
    	XmlPullParser parser = Xml.newPullParser();
    	
    	try{
    		//初始化
    		parser.setInput(is, "UTF-8");
    		
    		//获取当前节点的事件类型
    		int type = parser.getEventType();
    		
    		City city = null;
    		//不到文档结束就一直解析
    		while(type != XmlPullParser.END_DOCUMENT){
    			switch (type) {
				case XmlPullParser.START_TAG:
					//获取当前节点的名称
					if("weather".equals(parser.getName())){
						list = new ArrayList<City>();
					}else if("city".equals(parser.getName())){
						city = new City();
					}else if("name".equals(parser.getName())){
						//获取下一个节点的文本,而且把指针移动到当前节点的结束节点
						city.setName(parser.nextText());
					}else if("temp".equals(parser.getName())){
						city.setTemp(parser.nextText());
					}else if("pm25".equals(parser.getName())){
						city.setPm25(parser.nextText());
					}
					break;
				case XmlPullParser.END_TAG:
					if("city".equals(parser.getName())){
						list.add(city);
					}
					break;
				}
    			type = parser.next();    			
    		}
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    	
    	//输出数据
    	for (City city : list) {
			System.out.println(city.toString());
		}
    }
}

XMLParaser 解析 xml

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/4502.html

(0)
编程小号编程小号
上一篇 2022-12-27 21:28
下一篇 2023-04-10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注