pull解析xml
来源:互联网 发布:如何把淘宝微信群做大 编辑:程序博客网 时间:2024/05/01 21:47
package com.example.pulls.uri;/** * Created by TYF on 2016/7/6. */public class Person { public int _id; public String username; public String password; public String pic; public Person(int _id, String password, String pic, String username) { this._id = _id; this.password = password; this.pic = pic; this.username = username; } public Person() { } @Override public String toString() { return "Person{" + "_id=" + _id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", pic='" + pic + '\'' + '}'; }}
package com.example.pulls;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.util.Xml;import android.view.View;import android.widget.Button;import android.widget.ListView;import com.example.pulls.uri.Cantant;import com.example.pulls.uri.Person;import org.xmlpull.v1.XmlPullParser;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;public class XmlActivity extends AppCompatActivity { public static final String pathxml = Cantant.ipConfig + "/persons.xml"; public static final String TAG = "XmlActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_xml); } public void btGetxml(View view) { new Thread() { @Override public void run() { try { List<Person> list = parseIs(getXml(pathxml)); for (Person p : list) { Log.i(TAG, p + "--"); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } //得到数据流 public InputStream getXml(String path) throws Exception { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(3000); int code = conn.getResponseCode(); if (code == HttpURLConnection.HTTP_OK) { return conn.getInputStream(); } return null; } //pull解析数据流 public List<Person> parseIs(InputStream is) throws Exception { //1.得到解析器 XmlPullParser parser = Xml.newPullParser(); //2.用什么编程解析什么流 parser.setInput(is, "utf-8"); //3.得到类型 int eventType = parser.getEventType(); //4.循环 List<Person> lists = null; Person person = null; while (XmlPullParser.END_DOCUMENT != eventType) { switch (eventType) { //如果是开始标签 case XmlPullParser.START_TAG: //如果遇到Persons.就创集合 if ("persons".equals(parser.getName())) { lists = new ArrayList<>(); } else if ("person".equals(parser.getName())) { //如果遇到person,创实体 person = new Person(); } else if ("_id".equals(parser.getName())) { //如果遇到_id,为实体_id赋值 int _id = Integer.parseInt(parser.nextText()); person._id = _id; } else if ("username".equals(parser.getName())) { String username = parser.nextText(); person.username = username; } else if ("password".equals(parser.getName())) { String password = parser.nextText(); person.password = password; } else if ("pic".equals(parser.getName())) { String pic = parser.nextText(); person.pic = pic; } break; //如果是结束标签 case XmlPullParser.END_TAG: if ("person".equals(parser.getName())) { //添加到集合 lists.add(person); person = null; } break; } //往下走 eventType = parser.next(); } return lists; }}
0 0
- XML解析Pull解析
- XML解析---PULL解析
- XML的pull解析
- Pull解析XML文件
- Pull详解解析xml
- Pull解析Xml方式
- Android Pull解析xml
- pull解析xml
- xml解析(PULL)
- Pull 解析xml
- android pull 解析xml
- pull解析xml
- PULL解析XML
- android PULL 解析XML
- Android Pull解析xml
- Pull解析xml文件
- Android Pull 解析 XML
- Android Pull 解析 XML
- iOS中常用的几何方法
- 字符集的前世今生
- 1013 Problem M
- 通过 脚本执行 kettle 的作业 命令
- 不同部门员工吃饭时聊些什么,程序员那一段笑死我了…
- pull解析xml
- nginx 正向代理 反向代理
- [高斯消元 线性基 树 记数] BZOJ 2322 [BeiJing2011]梦想封印
- java冒泡排序和选择排序法
- asp.net 调用带证书的webservice解决办法
- 前景检测算法(五)--GMM,GMM2,GMG
- 【C语言】调用函数
- ActivityLifecycle 生命周期
- Java之WeakReference与SoftReference使用讲解