/**
* 解析XML工具类
*/
public class XmlUtils {
/**
* 解析XML转换成对象
*
* @param is
* 输入流
* @param clazz
* 对象Class
* @param fields
* 字段集合一一对应节点集合
* @param elements
* 节点集合一一对应字段集合
* @param itemElement
* 每一项的节点标签
* @return
*/
public static List<Object> parse(InputStream is, Class<?> clazz,
List<String> fields, List<String> elements, String itemElement) {
Log.v("rss", "开始解析XML.");
List<Object> list = new ArrayList<Object>();
try {
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(is, "UTF-8");
int event = xmlPullParser.getEventType();
Object 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
*/
public static void setFieldValue(Object obj, String propertyName,
Object value) {
try {
Field field = obj.getClass().getDeclaredField(propertyName);
field.setAccessible(true);
field.set(obj, value);
} catch (Exception ex) {
throw new RuntimeException();
}
}
}
分享到:
相关推荐
Android XML 解析工具类 Android XML 解析工具类是一个功能强大且实用的工具类,提供了多种方法来解析 XML 文档。该工具类提供了四种方法来获取 XML 节点的内容,分别是 getMarkString、getMarkString、...
本示例将详细讲解如何在Android应用程序中解析XML以实现类似网易客户端的功能。首先,让我们了解XML解析的基本概念,然后探讨在Android中实现这一功能的关键技术和步骤。 XML是一种自描述性的标记语言,它允许我们...
本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下: 1. xmlUtil工具类 package com.example.xmlpaserutil.util; import java.io.InputStream; import java.lang....
在Android开发中,由于其轻量级和低内存占用,Pull解析器常常被用来解析XML文档,尤其是在处理大数据量时,相比DOM和SAX解析器更为高效。 Pull解析器是一种事件驱动的解析方式,它不会一次性加载整个XML文档到内存...
以上就是“Android解析XML并使用WebView显示”的主要技术点,开发者需要理解并掌握这些知识点,才能在实际项目中顺利实现这一功能。通过不断实践和学习,我们可以更好地理解和运用这些工具,提升应用的质量和用户...
在需要解析XML的地方,直接调用封装好的工具类方法,如`String content = XmlParserUtil.getTagContent(inputStream, "tagName")`,即可得到指定标签的内容。 7. **异常处理**: 解析过程中可能出现的异常,如...
1. **XML解析**:工具首先读取XML文件,然后使用Java的DOM解析器(如org.w3c.dom库中的DocumentBuilderFactory和DocumentBuilder)来解析XML文档。DOM解析器将整个XML文件加载到内存中,形成一个可操作的树形结构,...
`toXML()`用于将Java对象转换为XML字符串,而`fromXML()`则将XML字符串解析回对应的Java对象。XStream通过使用所谓的“alias”来简化XML结构,使得类名和XML标签之间可以进行映射。 在Android项目中,首先需要添加...
"Android pull解析xml源码"这个主题聚焦于使用Android的XML Pull解析器来理解和操作XML文档。Pull解析器是一种事件驱动的解析方法,与DOM(Document Object Model)和SAX(Simple API for XML)不同,它不需要将整个...
本篇将详细介绍如何在Eclipse中解析XML文件,以及相关的Android XML解析技术。 首先,Android SDK提供了两种主要的XML解析方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器将整个XML文件...
9. **appcompat_v7库**:提到的`appcompat_v7`库是Android Support Library的一部分,它提供了对早期版本Android API的支持,包括Material Design组件和主题,以及一些实用工具类。在本主题中,它并不直接与XStream...
6. **解析XML文档**:除了创建XML,JDOM也可以用于解析已存在的XML文件。首先,读取XML文件: ```java SAXBuilder saxBuilder = new SAXBuilder(); Document doc = saxBuilder.build(new File("input.xml")); ``...
在Android应用开发中,国际...总的来说,`android String.xml Excel 相互转换工具`是Android应用开发中的利器,它们简化了国际化过程中字符串资源的管理,提高了开发效率,是每个进行多语言支持的项目必备的辅助工具。
综上所述,"android解析生成xml文件"这一主题涵盖了XML的基本概念、Android中的XML应用、XML解析与生成的方法,以及可能涉及到的工具和自定义工具类的使用。如果想深入了解Android开发中的XML处理,阅读这篇博客会是...
在"android XML文件解析和序列化 demo"中,可能演示了如何创建自定义对象,使用Pull解析器读取XML文件,将数据填充到对象列表,然后使用类似Gson或自定义的方法将对象列表序列化回XML文件。 **代码示例** ```java ...
使用SAX方式解析XML SAX 是读取和操作 XML 数据的更快速、更轻量的方 法。SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。它不涉及 DOM 所必需的开销和概念跳跃。 SAX API是一个基于事件...
- 转换数据格式:然后,根据读取到的内容,我们需要解析XML结构并转换为Java对象,如ArrayList、HashMap等。 - 自定义解析器:由于Android没有内置的.plist解析库,通常需要自定义解析类,实现XMLPullParser接口,...
- `android.util.Xml`:Android提供的一个简化版的XML处理工具,封装了上述包的功能,使得XML操作更加简洁。 4. **XML读取示例(DOM)** - 以下是一个简单的使用DOM解析XML文件的Java代码示例: ```java import...
- `XmlUtils`:处理XML数据,如解析XML文件、转化成对象等。 - `GsonUtils`:基于Gson库,用于JSON数据的序列化和反序列化,方便地将Java对象转换为JSON字符串,反之亦然。 7. **权限管理工具类**: - `...