Xml之pull解析
来源:互联网 发布:截铃声软件 编辑:程序博客网 时间:2024/05/16 05:07
xml一共有三种解析放方法①DOM解析②SAX解析③Android内置的Pull解析第三种 解析 ③Android内置的Pull解析
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.List;
- import org.xmlpull.v1.XmlPullParser;
- import com.example.adapter.MyAdapter;
- import com.example.bean.News;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.content.res.XmlResourceParser;
- import android.os.Bundle;
- import android.os.Handler;
- import android.util.Log;
- import android.util.Xml;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.BaseAdapter;
- import android.widget.ListView;
- public class MainActivity extends Activity {
- private ListView lv;
- private List<News> list;
- private BaseAdapter adapter;
- Handler handler=new Handler(){
- public void handleMessage(android.os.Message msg) {
- handler.sendEmptyMessageDelayed(0, 1000);
- adapter=new MyAdapter(MainActivity.this, list);
- lv.setAdapter(adapter);
- };
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- lv = (ListView) findViewById(R.id.lv);
- new Thread(){
- public void run() {
- handler.sendEmptyMessageDelayed(0, 1000);
- show("http://www.sciencenet.cn/xml/iphoneinterface.aspx?type=news&nums=20");
- }
- }.start();
- //点击条目跳转
- lv.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
- String link=list.get(arg2).getLink();
- Intent intent=new Intent(MainActivity.this, SecondActivity.class);
- intent.putExtra("link", link);
- startActivity(intent);
- }
- });
- }
- //解析数据
- private void show(String strUrl) {
- try {
- URL url=new URL(strUrl);
- //创建连接
- HttpURLConnection connection=(HttpURLConnection) url.openConnection();
- connection.connect();
- //获得响应码
- int code = connection.getResponseCode();
- if(code==200){
- InputStream is = connection.getInputStream();
- //pull解析
- XmlPullParser xmlParser=Xml.newPullParser();
- xmlParser.setInput(is, "UTF-8");
- News n=null;
- int eventType = xmlParser.getEventType();
- while(eventType!=XmlResourceParser.END_DOCUMENT){
- String tagName = xmlParser.getName();
- switch (eventType) {
- case XmlPullParser.START_DOCUMENT:
- list = new ArrayList<News>();
- break;
- case XmlPullParser.START_TAG:
- //如果新闻标签的开始我们需要创建News对象
- if("item".equalsIgnoreCase(tagName)){
- n=new News();
- }else if("title".equals(tagName)){
- n.setTitle(xmlParser.nextText());
- }else if("link".equals(tagName)){
- n.setLink(xmlParser.nextText());
- }else if("imgs".equals(tagName)){
- n.setImgs(xmlParser.nextText());
- }else if("copyright".equals(tagName)){
- n.setCopyright(xmlParser.nextText());
- }else if("pubDate".equals(tagName)){
- n.setPubDate(xmlParser.nextText());
- }
- break;
- case XmlPullParser.END_TAG:
- if("item".equals(tagName)){
- list.add(n);
- Log.e("info", "++++++"+n);
- n=null;
- }
- break;
- case XmlPullParser.END_DOCUMENT:
- break;
- }
- eventType=xmlParser.next();
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- };
0 0
- Xml解析之----Pull
- XML解析之PULL
- xml解析之pull
- XML之PULL解析
- XML之PULL解析
- xml解析之pull
- XML之pull解析
- xml解析之PULL
- Xml之pull解析
- xml之pull解析
- Xml之pull解析
- XML解析之pull
- XML解析之PULL
- Xml之Pull解析
- xml解析之pull解析
- xml解析之pull解析
- Xml 解析之pull解析
- XML解析之pull解析
- EXT---Ext.window.Window,隐藏和关闭不当引起错误
- androidStudio遇到$ adb shell pm uninstall错误
- mysql 查询数组包含的id
- 实现自己的ip命令
- 莫队算法
- Xml之pull解析
- 资产定价Model——随机变量因子
- 获取文件夹下最大的前n个文件
- 微信主界面开发知识点
- SDUT 2087 离散事件模拟-银行管理
- android报错——Unable to add window -- token null is not for an application
- Android编程之找不到布局文件
- dos和unix文件格式转换
- Light OJ 1116 Ekka Dokka