android解析xml文件 Android DOM解析XML之全球实时地震信息列表
public class HttpGet extends Activity {
private ListView list;
EarthQuakeInfo selectedQuake;
ArrayAdapter adapter;
ArrayList infoList=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
//设置listView的内容为infoList
list=(ListView)this.findViewById(R.id.list);
adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,infoList);
//设置ListView的适配器为adapter
list.setAdapter(adapter);
getInfo();//获得infoList的具体内容。
}
private void getInfo(){
URL url;
try{
String feed=getString(R.string.feed);
url=new URL(feed);
URLConnection connection=url.openConnection();
HttpURLConnection httpConnection=(HttpURLConnection)connection;
int responseCode=httpConnection.getResponseCode();
if(responseCode==HttpURLConnection.HTTP_OK){
InputStream in=httpConnection.getInputStream();
DocumentBuilderFactory dbfactory=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbfactory.newDocumentBuilder();
//解析地震feed
Document dom=db.parse(in);
Element docEle=dom.getDocumentElement();
//清空旧的地震信息
infoList.clear();
//获得地震信息列表
NodeList nl=docEle.getElementsByTagName("entry");
if(nl!=null&&nl.getLength()>0){
for(int i=0;i<nl.getLength();i++){
Element entry=(Element)nl.item(i);
Element title=(Element)entry.getElementsByTagName("title").item(0);
Element geo=(Element)entry.getElementsByTagName("georss:point").item(0);
Element when=(Element)entry.getElementsByTagName("updated").item(0);
String details=title.getFirstChild().getNodeValue();
String point=geo.getFirstChild().getNodeValue();
String date=when.getFirstChild().getNodeValue();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
Date qdate=new GregorianCalendar(0,0,0).getTime();
try{
qdate=sdf.parse(date);
}catch (Exception e) {
e.printStackTrace();// TODO: handle exception
}
String[] location=point.split(" ");
Location loc=new Location("dummyGPS");
loc.setLatitude(Double.parseDouble(location[0]));
loc.setLongitude(Double.parseDouble(location[1]));
String magnitudeString=details.split(" ")[1];
int end=magnitudeString.length()-1;
double magnitude=Double.parseDouble(magnitudeString.substring(0,end));
details=details.split(",")[1].trim();
EarthQuakeInfo info=new EarthQuakeInfo(qdate,details,loc,magnitude);
//处理地震信息
newEntry(info);
}
}
}
}catch (Exception e) {
// TODO: handle exception
}
}
private void newEntry(EarthQuakeInfo info){
infoList.add(info);
adapter.notifyDataSetChanged();
}
public class EarthQuakeInfo{
public Date date;
public String details;
public Location location;
public double magnitude;
public EarthQuakeInfo(Date d,String de,Location loc,double mag){
this.date=d;
this.details=de;
this.location=loc;
this.magnitude=mag;
}
@Override
public String toString(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd' 'hh:mm:ss");
return sdf.format(date)+"\n里氏"+magnitude+"级"+details+"地点"+location;
}
}
} 相关推荐
与卿画眉共浮生 2020-10-14
xiyang 2020-08-21
XGQ 2020-07-04
Andrewjdw 2020-05-29
Yakamoz 2020-05-26
行吟阁 2020-05-18
88491874 2020-04-30
baijinswpu 2020-07-29
leonranri 2020-07-26
zhongliwen 2020-07-05
麋鹿麋鹿迷了路 2020-07-05
zengyu00 2020-07-05
CoderBoy 2020-06-28
whbing 2020-06-28
绝望的乐园 2020-06-27
wellfly 2020-06-26
菇星獨行 2020-06-25
草原孤狼 2020-06-25
坚持着执着 2020-06-16