您的位置:首页 > 理论基础 > 计算机网络

网络获取信息Ion---解析xml和assets获取信息pull解析xml

2016-05-13 20:06 543 查看

两个包androidasync-2.1.6.jar-------ion-2.1.6.jar

配置--android.permission.INTERNET

Mainactivity

获取网络信息

String ulr = "http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="+ pageIndex + "&pageSize=20";

Ion.with(getApplicationContext()).load(ulr).asString()

.setCallback(new FutureCallback<String>() {

//result就是解析

@Override

public void onCompleted(Exception e, String
result) {

// TODO Auto-generated method stub

if (e != null) {

return;

}

pull(result);

allList.addAll(nList);

adapter.addrest(allList);

}

});

pull解析xml

private void pull_(String result) {

// TODO Auto-generated method stub

News infos=null;

try {

//获得xml解析器

XmlPullParser newPullParser = Xml.newPullParser();

//获得文件

ByteArrayInputStream arrayInputStream=new ByteArrayInputStream(result.getBytes());

//设置流

newPullParser.setInput(arrayInputStream,"UTF-8");

eventType = newPullParser.getEventType();

while(eventType!=XmlPullParser.END_DOCUMENT){

String name = newPullParser.getName();

switch (eventType) {

case XmlPullParser.START_DOCUMENT:

list_news = new ArrayList<News>();

break;

case XmlPullParser.START_TAG:

if("news".equals(name)){

infos = new News();

}

if(infos!=null){

if("id".equals(name)){

infos.id = newPullParser.nextText();

}else if("title".equals(name)){

String titles = newPullParser.nextText();

infos.title=titles;

}else if ("body".equals(name)) {

String body = newPullParser.nextText();

infos.body =body;

} else if ("commentCount".equals(name)) {

String commentCount = newPullParser.nextText();

infos.commentCount =commentCount;

} else if ("author".equals(name)) {

String author = newPullParser.nextText();

infos.author =author;

} else if ("authorid".equals(name)) {

String authorid = newPullParser.nextText();

infos.authorid =authorid;

} else if ("pubDate".equals(name)) {

String pubDate = newPullParser.nextText();

infos.pubDate =pubDate;

} else if("newstype".equals(name)){

if("type".equals(name)){

String type = newPullParser.nextText();

infos.newstype.type =type;

}else if("authoruid2".equals(name)){

String authoruid2 = newPullParser.nextText();

infos.newstype.authoruid2 =authoruid2;

}

}

}

break;

case XmlPullParser.END_TAG:

if("news".equals(name)){

list_news.add(infos);

}

break;

case XmlPullParser.END_DOCUMENT:

break;

default:

break;

}

eventType = newPullParser.next();

}

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//从assets中获取信息pull解析xml

public class MainActivity extends Activity {

private static final String TAG = "MainActivity";

private int eventType;

private XmlPullParser newpullParser;

private List<Javabean> list;

private Javabean javabean;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获得xml文件解析器

newpullParser = Xml.newPullParser();

//获得文件

try {

InputStream inputStream = getAssets().open("data.xml");

//将文件放到解析器

newpullParser.setInput(inputStream, "utf-8");

eventType = newpullParser.getEventType();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//解析xmL内容

List<Javabean> pullxml = pullxml();

for(Javabean javabean:pullxml){

Log.i(TAG,javabean.toString());

}

}

private List<Javabean> pullxml() {

// TODO Auto-generated method stub

while(eventType!=XmlPullParser.END_DOCUMENT){

String name = newpullParser.getName();

switch (eventType) {

case XmlPullParser.START_DOCUMENT:

break;

case XmlPullParser.START_TAG:

if("persons".equals(name)){

list = new ArrayList<Javabean>();

}else if("person".equals(name)){

javabean = new Javabean();

String id = newpullParser.getAttributeValue(0);

javabean.setId(id);

}else if("name".equals(name)){

try {

String names = newpullParser.nextText();

javabean.setName(names);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else if("age".equals(name)){

try {

String ages = newpullParser.nextText();

javabean.setAge(ages);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

break;

case XmlPullParser.END_TAG:

if("person".equals(name)){

list.add(javabean);

javabean=null;

}else if("persons".equals(name)){

return list;

}

break;

default:

break;

}

try {

eventType = newpullParser.next();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return list;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: