0

0

android使用XmlPullParser来解析XML文件

黄舟

黄舟

发布时间:2017-02-20 14:57:02

|

1965人浏览过

|

来源于php中文网

原创

解析以下的一个xml:


77f265bb46de068e78f35afbadec62af30
119522459334369527955xtaJR3436952795
005xtaJR马艳丽
 
1
0
13

2
11
25
0
0
0
0

00
婚礼在北海美丽的北海公园举行…好美好浪漫的地方… 
 
彩信


这样来写解析:

	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中这样调用:

aspx1财付通支付接口源码
aspx1财付通支付接口源码

本支付接口的特点,主要是用xml文件来记录订单详情和支付详情。代码比较简单,只要将里面的商户号、商户key换成你自己的,将回调url换成你的网站,就可以使用了。通过这个实例也可以很好的了解一般在线支付接口的基本工作原理。其中的pay.config文件记录的是支付详情,order.config是订单详情

下载
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文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

42

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

46

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

202

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

341

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

16

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

100

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

73

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

75

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

67

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 13.3万人学习

Java 教程
Java 教程

共578课时 | 50.8万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号