android使用XmlPullParser来解析XML文件的示例-创新互联
这篇“android使用XmlPullParser来解析XML文件的示例”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“android使用XmlPullParser来解析XML文件的示例”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
解析以下的一个XML:
77f265bb46de068e78f35afbadec62af 3 0 1195224593 3436952795 5xtaJR 3436952795 0 0 5xtaJR 马艳丽 1 0 13 2 11 25 0 0 0 0 0 0 婚礼在北海美丽的北海公园举行…好美好浪漫的地方… 彩信
这样来写解析:
public static Object[] getMBlogList(String content) throws HttpException {
try {
Object[] result = new Object[3];
List lst = new ArrayList();
result[1] = lst;
final XmlPullParser parser = Xml.newPullParser();
parser.setInput(new StringReader(content));
int type;
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:这里开始读取最外层的标签属性
if (parser.getName().equals("count")) {
try {
result[0] = new Integer(parseText(parser));
} catch (Exception e) {
result[0] = 0;
}
} else if (parser.getName().equals("mblog")) {
MBlog mb = parseMBlog(parser);
if (mb != null)
lst.add(mb);
} else if (parser.getName().equals("relation")) {
result[2] = new Integer(parseText(parser));
}
break;
default:
break;
}
}
return result;
} catch (NumberFormatException e) {
throw new HttpException(e);
} catch (XmlPullParserException e) {
throw new HttpException(e);
} catch (IOException e) {
throw new HttpException(e);
} catch (ParseException e) {
throw new HttpException(e);
}
}
private static String parseText(XmlPullParser parser) throws ParseException {
try {
int type = parser.next();
if (type == XmlPullParser.TEXT) {
return replaceEntityRef(parser.getText().trim());
} else {
return "";
}
} catch (Exception e) {
throw new ParseException(PARSE_ERROR, e);
}
}
public static MBlog parseMBlog(XmlPullParser parser) throws ParseException {
MBlog b = new MBlog();//这里开始读取每个MBlog对象
try {
int type;
LOOP: {
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if (parser.getName().equals("uid")) {
b.uid = parseText(parser);
if (b.uid.equals(""))
return null;
} else if (parser.getName().equals("favid")) {
b.favid = parseText(parser);
} else if (parser.getName().equals("mblogid")) {
b.mblogid = parseText(parser);
} else if (parser.getName().equals("nick")) {
String s = parseText(parser);
b.nick = s;
} else if (parser.getName().equals("portrait")) {
b.portrait = parseText(parser);
} else if (parser.getName().equals("vip")) {
b.vip = (parseText(parser).equals("1")) ? true : false;
} else if (parser.getName().equals("content")) {
b.content = parseText(parser);
} else if (parser.getName().equals("rtrootuid")) {
b.rtrootuid = parseText(parser);
} else if (parser.getName().equals("rtrootid")) {
b.rtrootid = parseText(parser);
} else if (parser.getName().equals("rtrootnick")) {
String s = parseText(parser);
b.rtrootnick = s;
} else if (parser.getName().equals("rtrootvip")) {
b.rtrootvip = (parseText(parser).equals("1")) ? true : false;
} else if (parser.getName().equals("rtreason")) {
b.rtreason = parseText(parser);
} else if (parser.getName().equals("rtnum")) {
b.rtnum = Integer.parseInt(parseText(parser));
} else if (parser.getName().equals("commentnum")) {
b.commentnum = Integer.parseInt(parseText(parser));
} else if (parser.getName().equals("time")) {
b.time = new Date(Long.parseLong(parseText(parser)) * 1000);
} else if (parser.getName().equals("pic")) {
b.pic = parseText(parser);
} else if (parser.getName().equals("source")) {
b.src = parseText(parser);
} else if (parser.getName().equals("longitude")) {
b.longitude = parseText(parser);
} else if (parser.getName().equals("latitude")) {
b.latitude = parseText(parser);
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("mblog")) {
break LOOP;
}
break;
default:
break;
}
}
}
return b;
} catch (Exception e) {
throw new ParseException(PARSE_ERROR, e);
}
}
在Activity中这样调用:
public void parseAssertData() {
InputStream is = null;
try {
is = this.getAssets().open("11.xml", Context.MODE_PRIVATE);
int length = is.available();
byte[] buffer = new byte[length];
is.read(buffer);
String temp = new String(buffer);
try {
Object[] array = ParseData.getMBlogList(temp);
} catch (HttpException e) {
e.printStackTrace();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}以上是“android使用XmlPullParser来解析XML文件的示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网页题目:android使用XmlPullParser来解析XML文件的示例-创新互联
分享路径:http://www.jxjierui.cn/article/djdcoo.html


咨询
建站咨询
