Pull解析xml文件
2016-03-30 20:14
344 查看
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<id>1001</id>
<name>Thinking In Java</name>
<price>80.00</price>
</book>
<book>
<id>1002</id>
<name>Core Java</name>
<price>90.00</price>
</book>
<book>
<id>1003</id>
<name>Hello, Andriod</name>
<price>100.00</price>
</book>
</books>
微 2016/3/30 19:45:14
package test.bwie.com.lianxi0302;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2016/3/3.
*/
public class XmlJiexi extends Activity {
List<Book> books = null;
Book book = null;
private ArrayAdapter adapter;
private ListView listviwe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xmljie);
listviwe = (ListView)findViewById(R.id.listview);
XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例
try {
InputStream is = getAssets().open("books.xml");
parser.setInput(is, "UTF-8"); //设置输入流 并指明编码方式
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
books = new ArrayList<Book>();
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("book")) {
book = new Book();
} else if (parser.getName().equals("id")) {
eventType = parser.next();
book.setId(Integer.parseInt(parser.getText()));
} else if (parser.getName().equals("name")) {
eventType = parser.next();
book.setName(parser.getText());
} else if (parser.getName().equals("price")) {
eventType = parser.next();
book.setPrice(Float.parseFloat(parser.getText()));
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("book")) {
books.add(book);
Log.e("Tag","books====="+books);
book = null;
}
break;
}
eventType = parser.next();
}
} catch (IOException e1) {
e1.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
adapter = new ArrayAdapter(XmlJiexi.this,android.R.layout.simple_list_item_1,books);
listviwe.setAdapter(adapter);
}
}
<books>
<book>
<id>1001</id>
<name>Thinking In Java</name>
<price>80.00</price>
</book>
<book>
<id>1002</id>
<name>Core Java</name>
<price>90.00</price>
</book>
<book>
<id>1003</id>
<name>Hello, Andriod</name>
<price>100.00</price>
</book>
</books>
微 2016/3/30 19:45:14
package test.bwie.com.lianxi0302;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2016/3/3.
*/
public class XmlJiexi extends Activity {
List<Book> books = null;
Book book = null;
private ArrayAdapter adapter;
private ListView listviwe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xmljie);
listviwe = (ListView)findViewById(R.id.listview);
XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例
try {
InputStream is = getAssets().open("books.xml");
parser.setInput(is, "UTF-8"); //设置输入流 并指明编码方式
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
books = new ArrayList<Book>();
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("book")) {
book = new Book();
} else if (parser.getName().equals("id")) {
eventType = parser.next();
book.setId(Integer.parseInt(parser.getText()));
} else if (parser.getName().equals("name")) {
eventType = parser.next();
book.setName(parser.getText());
} else if (parser.getName().equals("price")) {
eventType = parser.next();
book.setPrice(Float.parseFloat(parser.getText()));
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("book")) {
books.add(book);
Log.e("Tag","books====="+books);
book = null;
}
break;
}
eventType = parser.next();
}
} catch (IOException e1) {
e1.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
adapter = new ArrayAdapter(XmlJiexi.this,android.R.layout.simple_list_item_1,books);
listviwe.setAdapter(adapter);
}
}
相关文章推荐
- C++组合应用之strtok字符串分割、数组平分算法、动态数组函数传参
- ios swift 归档解档遇到的坑 3-30
- 菜鸟学习之javaweb 乱码的解决
- USB Mass Storage大容量存储的基本知识
- windowbuilder入门
- BZOJ 1086([SCOI2005]王室联邦-树的划分)
- [Unity官方文档翻译]Importing Assets 如何向unity导入资源
- 在Spring3中,配置DataSource的方法有6种。
- fork和缓冲区
- IOS开发-UI学习-UITextField的各种属性设置
- Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)
- 杭电1398 Square Coins 简单母函数
- 广搜,深搜,单源最短路径,POJ(1130),ZOJ(1085)
- 关于ios不同版本间的内存管理差异和iso6与以前版本内存管理的兼容
- 关于ARC需要了解的一些基本知识点
- iOS KVC & KVO
- 26、Java调用Oracle存储过程?
- Linux date命令
- 【JSP】简单登陆界面
- swift基础2