安卓开发之利用XmlPullParser解析XML文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了安卓开发之利用XmlPullParser解析XML文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4708字,纯文字阅读大概需要7分钟。
内容图文
1 package com.lidaochen.phonecall; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.util.Xml; 6 import android.view.View; 7 import android.widget.TabHost; 8 import android.widget.TextView; 9 import android.widget.ThemedSpinnerAdapter; 10 11 import java.io.InputStream; 12 import java.util.ArrayList; 13 import java.util.List; 14 15 public class MainActivity extends AppCompatActivity{ 16 @Override 17protectedvoid onCreate(Bundle savedInstanceState) { 18super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20try21 { 22// 找到TextView控件23 TextView textView = (TextView)findViewById(R.id.textView); 24// 通过上下文获取资产管理者25 InputStream inputStream = getAssets().open("weather.xml"); 26// 调用我们定义的方法解析XML文件27 List<Channel> weatherlists = WeatherParser.parserXml(inputStream); 28 StringBuffer sb = new StringBuffer(); 29for (Channel channel:weatherlists) 30 { 31 sb.append(channel.toString()); 32 } 33// 将解析的文件内容显示到TextView控件上面34 textView.setText(sb.toString()); 35 } 36catch (Exception e) 37 { 38 e.printStackTrace(); 39 } 40 } 41 }
1 package com.lidaochen.phonecall; 2 3 import android.util.Xml; 4 5 import org.xmlpull.v1.XmlPullParser; 6 7 import java.io.InputStream; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 public class WeatherParser { 12 // 服务器是以流的形式把数据返回的 13 public static List<Channel> parserXml(InputStream In) throws Exception 14 { 15// 声明集合对象16 List<Channel> weatherlists = null; 17 Channel channel = null; 18// 获取XmlPullParser解析的实例19 XmlPullParser xmlPullParser = Xml.newPullParser(); 20// 设置XmlPullParser的参数21 xmlPullParser.setInput(In, "utf-8"); 22// 获取事件类型23int type = xmlPullParser.getEventType(); 24while(type != XmlPullParser.END_DOCUMENT) 25 { 26switch (type) 27 { 28case XmlPullParser.START_TAG: 29if ("weather".equals(xmlPullParser.getName())) 30 { 31// 创建一个集合对象32 weatherlists = new ArrayList<Channel>(); 33 } 34elseif ("channel".equals(xmlPullParser.getName())) 35 { 36// 创建Channel对象37 channel = new Channel(); 38// 获取id值39 String id = xmlPullParser.getAttributeValue(0); 40 channel.setId(id); 41 } 42elseif ("city".equals(xmlPullParser.getName())) 43 { 44 String city = xmlPullParser.nextText(); 45 channel.setCity(city); 46 } 47elseif ("temp".equals(xmlPullParser.getName())) 48 { 49 String temp = xmlPullParser.nextText(); 50 channel.setTemp(temp); 51 } 52elseif ("wind".equals(xmlPullParser.getName())) 53 { 54 String wind = xmlPullParser.nextText(); 55 channel.setWind(wind); 56 } 57elseif ("pm250".equals(xmlPullParser.getName())) 58 { 59 String pm250 = xmlPullParser.nextText(); 60 channel.setPm250(pm250); 61 } 62break; 63case XmlPullParser.END_TAG: // 解析结束标志 64// 判断要解析的结束标签是不是channel65if ("channel".equals(xmlPullParser.getName())) 66 { 67// 把javabean对象存到集合中68 weatherlists.add(channel); 69 } 70break; 71 } 72// 不停的向下解析73 type = xmlPullParser.next(); 74 } 7576return weatherlists; 77 } 78 }
1 package com.lidaochen.phonecall; 2 3 public class Channel { 4 private String id; 5 private String city; 6 private String temp; 7 private String wind; 8 private String pm250; 9 10 public String getId() { 11 return id; 12 } 13 14 public void setId(String id) { 15 this.id = id; 16 } 1718public String getCity() { 19return city; 20 } 2122publicvoid setCity(String city) { 23this.city = city; 24 } 2526public String getTemp() { 27return temp; 28 } 2930publicvoid setTemp(String temp) { 31this.temp = temp; 32 } 3334public String getWind() { 35return wind; 36 } 3738publicvoid setWind(String wind) { 39this.wind = wind; 40 } 4142public String getPm250() { 43return pm250; 44 } 4546publicvoid setPm250(String pm250) { 47this.pm250 = pm250; 48 } 4950 @Override 51public String toString() 52 { 53return "Channel [id=" + id + ", city=" + city + ", temp=" + temp 54 + ", wind=" + wind + ", pm250=" + pm250 + "]\n"; 55 } 56 }
下面是要解析的XML文件,需要放在assets目录下
1 <? xml version="1.0" encoding="utf-8" ?> 2 < weather > 3 < channel id =‘1‘ > 4 < city >北京</city> 5<temp>25°</temp> 6<wind>3</wind> 7<pm250>300</pm250> 8 9</channel>1011<channel id =‘2‘>12<city>郑州</city>13<temp>20°</temp>14<wind>4</wind>15<pm250>300</pm250>1617</channel>1819<channel id =‘3‘>20<city>长春</city>21<temp>10°</temp>22<wind>4</wind>23<pm250>100</pm250>2425</channel>2627<channel id =‘4‘>28<city>沈阳</city>29<temp>20°</temp>30<wind>1</wind>31<pm250>50</pm250>32</channel>333435</weather>
原文:https://www.cnblogs.com/duxie/p/10890465.html
内容总结
以上是互联网集市为您收集整理的安卓开发之利用XmlPullParser解析XML文件全部内容,希望文章能够帮你解决安卓开发之利用XmlPullParser解析XML文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。