// 生成:
public void writeXml(ArrayList<LoadPicEntity> list, int day, int number) {
Log.i("animationDrawable", "writeXml");
File file = new File(ImageUtil.LOADPIC_DEPLOY + "loadpic.xml");
XmlSerializer serializer = Xml.newSerializer();
try {
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
serializer.setOutput(out, "UTF-8");
serializer.startDocument("UTF-8", true);
serializer.setFeature(
"http://xmlpull.org/v1/doc/features.html#indent-output",
true);
serializer.startTag(null, "root");
String url = null;
for (int i = 0; i < list.size(); i++) {
serializer.startTag(null, "LoadPic");
serializer.startTag(null, "img_seq");
serializer.text(list.get(i).getImg_seq());
serializer.endTag(null, "img_seq");
serializer.startTag(null, "img_url");
serializer.text(list.get(i).getImg_url());
serializer.endTag(null, "img_url");
serializer.startTag(null, "duration");
serializer.text(list.get(i).getDuration());
serializer.endTag(null, "duration");
serializer.startTag(null, "name");
url = list.get(i).getImg_url();
serializer.text(url.substring(url.lastIndexOf("/") + 1));
serializer.endTag(null, "name");
serializer.endTag(null, "LoadPic");
}
serializer.startTag(null, "day");
serializer.text(day + "");
serializer.endTag(null, "day");
serializer.startTag(null, "number");
serializer.text((number) + "");
serializer.endTag(null, "number");
serializer.endTag(null, "root");
serializer.endDocument();
serializer.flush();
out.close();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 解析:
public ArrayList<LoadPicEntity> parserXml() {
Log.i("animationDrawable", "parserXml");
ArrayList<LoadPicEntity> list = null;
try {
FileInputStream in = new FileInputStream(new File(
ImageUtil.LOADPIC_DEPLOY + "loadpic.xml"));
LoadPicEntity entity = null;
XmlPullParser xp = Xml.newPullParser();
xp.setInput(in, "UTF-8");
int eventType = xp.getEventType();
while ((eventType = xp.next()) != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
String name = xp.getName();
if (name.equals("root")) {
list = new ArrayList<LoadPicEntity>();
} else if (name.equals("LoadPic")) {
entity = new LoadPicEntity();
} else if (name.equals("img_seq")) {
entity.setImg_seq(xp.nextText());
} else if (name.equals("img_url")) {
entity.setImg_url(xp.nextText());
} else if (name.equals("duration")) {
entity.setDuration(xp.nextText());
// 注意:这种地方不要用xp.nextText()打Log,打Log时,把下一个数据拿走了,到下一个取得时候,取不到while循环就会结束
} else if (name.equals("name")) {
entity.setName(xp.nextText());
} else if (name.equals("day")) {
this.day = Integer.valueOf(xp.nextText());
} else if (name.equals("number")) {
this.number = Integer.valueOf(xp.nextText());
}
break;
case XmlPullParser.END_TAG:
String end = xp.getName();
if (end.equals("LoadPic")) {
list.add(entity);
Log.i("animationDrawable",
"xml解析出来的entity:" + entity.toString());
}
break;
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
android xml文件的生成与解析
最新推荐文章于 2022-03-10 23:33:54 发布