青春须早为,岂能长少年。这篇文章主要讲述android 读取xml相关的知识,希望能为你提供帮助。
在有些应用中,有一点小数据。直接存储在XML就是。实现较为简单,
1、xml文件放入asset目录。结构如:
<
?xml version="
1.0"
encoding="
UTF-8"
?>
<
messages>
<
message id="
1"
>
<
title>
3月毕业证数码像採集<
/title>
<
date1>
3<
/date1>
<
content>
3月12日左右全年一次毕业证数码像採集,由新华社负责<
/content>
<
url>
23<
/url>
<
/message>
<
message id="
2"
>
<
title>
3、9月课程注冊<
/title>
<
date1>
3<
/date1>
<
content>
3月15日、9月15日本学期所修课程注冊、课本征订,包含课程修完学员论文注冊<
/content>
<
url>
23<
/url>
<
/message>
<
/messages>
2 、构建message类,解析xml类PullParseService
【android 读取xml】3、在activity中调用。
详细代码例如以下:
1.解析xml类
package com.edu.notice;
import java.io.InputStream;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
public class PullParseService {
public static ArrayList <
Message>
getMessages(InputStream inputStream) throws Exception{
ArrayList<
Message>
messages =null;
Message message =null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inputStream, "
UTF-8"
);
int event = parser.getEventType();
//
while(event!=XmlPullParser.END_DOCUMENT){
switch(event){
case XmlPullParser.START_DOCUMENT://
messages = new ArrayList<
Message>
();
//
break;
case XmlPullParser.START_TAG://
if("
message"
.equals(parser.getName())){//
message = new Message();
message.setId(Integer.parseInt(parser.getAttributeValue(0)));
//
}
if(message!=null){
if("
title"
.equals(parser.getName())){//
message.setTitle(parser.nextText());
}else if("
date1"
.equals(parser.getName())){//
message.setData1(Integer.parseInt(parser.nextText()));
}else if("
content"
.equals(parser.getName())){
message.setContent(parser.nextText());
}else if("
url"
.equals(parser.getName())){
message.setUrl(parser.nextText());
}
}
break;
case XmlPullParser.END_TAG://
if("
message"
.equals(parser.getName())){//
messages.add(message);
//
message = null;
}
break;
}
event = parser.next();
//
}//end while
return messages;
};
}
2、xml每一个对象信息类
package com.edu.notice;
public class Message {
private int id;
private String title;
private int data1;
private String content;
private String url;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the title
*/
public String getTitle() {
return title;
}
/**
* @param title the title to set
*/
public void setTitle(String title) {
this.title = title;
}
/**
* @return the data1
*/
public int getData1() {
return data1;
}
/**
* @param data1 the data1 to set
*/
public void setData1(int data1) {
this.data1 = data1;
}
/**
* @return the content
*/
public String getContent() {
return content;
}
/**
* @param content the content to set
*/
public void setContent(String content) {
this.content = content;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @param url the url to set
*/
public void setUrl(String url) {
this.url = url;
}
}
3、读取xml数据应用到应用中
AssetManager
asset =
getAssets();
try {
InputStream input=asset.open("
message.xml"
);
List<
Message>
list = null;
try {
list = PullParseService.getMessages(input);
String tag="
xmllllll"
;
int id =(int) (Math.random()*12);
Log.i(tag, list.get(id).getContent());
//将内容公布广播
setReminder(true, list.get(id).getContent());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
推荐阅读
- 指定Android Studio编译工程时的源文件编码
- 安卓逆向入门
- POJ3321:Apple Tree(树状数组)
- Android中关于JNI 的学习对于JNIEnv的一些认识
- 安卓日历同步的一些要点
- 高级控件安卓5——对话框操作事件
- android的toogleButton和switch的使用方法
- 事件处理安卓4——键盘事件触摸事件
- android继续探索Fresco