您的位置:首页 > 其它

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