没有合适的资源?快使用搜索试试~ 我知道了~
Android开发中解析xml文件XmlUtils工具类与用法示例
3 下载量 182 浏览量
2021-01-04
14:17:58
上传
评论
收藏 65KB PDF 举报
温馨提示
本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下: 1. xmlUtil工具类 package com.example.xmlpaserutil.util; import java.io.InputStream; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Log; import android.ut
资源详情
资源评论
资源推荐
Android开发中解析开发中解析xml文件文件XmlUtils工具类与用法示例工具类与用法示例
本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下:
1. xmlUtil工具类
package com.example.xmlpaserutil.util;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Log;
import android.util.Xml;
public class XmlUtil<T> {
/**
* 解析XML转换成对象
*
* @param is
* 输入流
* @param clazz
* 对象Class
* @param fields
* 字段集合一一对应节点集合
* @param elements //d(这两行标红,是因为这两个是java中字段和xml文件中的字段对应)队医
* 节点集合一一对应字段集合
* @param itemElement
* 每一项的节点标签
* @return
*/
//静态方法中加入泛型,需要申明<T>,如果不是对泛型不是很熟悉,可以先用Object代替,然后再换回来
public static <T> List<T> parse(InputStream is, Class<T> clazz,
List<String> fields, List<String> elements, String itemElement) {
Log.v("rss", "开始解析XML.");
List<T> list = new ArrayList<T>();
try {
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(is, "UTF-8");
int event = xmlPullParser.getEventType();
T obj = null;
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if (itemElement.equals(xmlPullParser.getName())) {
obj = clazz.newInstance();
}
if (obj != null
&& elements.contains(xmlPullParser.getName())) {
setFieldValue(obj, fields.get(elements
.indexOf(xmlPullParser.getName())),
xmlPullParser.nextText());
}
break;
case XmlPullParser.END_TAG:
if (itemElement.equals(xmlPullParser.getName())) {
list.add(obj);
obj = null;
}
break;
}
event = xmlPullParser.next();
}
} catch (Exception e) {
Log.e("rss", "解析XML异常:" + e.getMessage());
throw new RuntimeException("解析XML异常:" + e.getMessage());
}
return list;
}
/**
* 设置字段值
*
* @param propertyName
* 字段名
* @param obj
* 实例对象
* @param value
* 新的字段值
* @return
weixin_38557980
- 粉丝: 7
- 资源: 925
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0