XML文件解析工具类pull解析

public class XMLParser {
	/**
	 * 解析服务器的配置文件
	 * @param is 从服务器获得配置的文件的流
	 */
	public static UpdateInfo parser(InputStream is){
		UpdateInfo info=null;
		try {
			//获得pull解析实例
			XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
			XmlPullParser xmlParser=factory.newPullParser();
		//初始化解析器
			xmlParser.setInput(is, "UTF-8");
			int eventType=xmlParser.getEventType();
			//文档没有解析完
			while(eventType!=XmlPullParser.END_DOCUMENT){
				switch (eventType) {
				case XmlPullParser.START_TAG:
					if(xmlParser.getName().equals("info")){
						info=new UpdateInfo();

					}else if(xmlParser.getName().equals("version")){
						info.setVersion(xmlParser.nextText());

					}else if(xmlParser.getName().equals("desc")){
						info.setDesc(xmlParser.nextText());
					}else if(xmlParser.getName().equals("apkurl")){
						info.setApkUrl(xmlParser.nextText());
					}
					break;

				}
				eventType=xmlParser.next();

			}

		} catch (XmlPullParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return info;

	}

}

对应的update.xml

<?xml version="1.0" encoding="utf-8"?>
<info>
<version>2.0</version>
<description>xxxxxxxxxx</description>
<apkurl>http://192.168.253.1:8080/xxxxxxx.apk</apkurl>
</info>
时间: 2024-10-22 15:07:51

XML文件解析工具类pull解析的相关文章

解析HTML文件 - 运用SgmlReader类来解析HTML文件

运用.NET Framework类来解析HTML文件.读取数据并不是最容易的.虽然你可以用.NET Framework中的许多类(如StreamReader)来逐行解析文件,但XmlReader提供的API并不是“取出即可用(out of the box)”的,因为HTML的格式不规范.你可以用正则表达式(regular expression),但如果你对这些表达式运用不熟练,你可能开始时会觉得它们有些难. Microsoft的XML大师Chris Lovett最近在http://www.got

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

java二维码编码和解析工具类

用到两个jar包: QRCode.jar Qrcodeen.jar package com.banmacoffee.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; imp

Android初级教程:Android中解析方式之pull解析

在安卓中有很多种解析方式.按照大方向有xml解析和json解析.而,细致的分,xml和json解析各有自己的很多解析方式.今天这一篇主要介绍xml解析中的pull解析.对于xml的解析方式,我之前在javaweb一些知识中有写过dom和dom4j等等解析方式.有兴趣的读者可以去javaweb篇里面找相关的内容. 先自定义一个数据源,假设就是访问服务器返回的xml数据文件名称为weather.xml: <?xml version='1.0' encoding='utf-8' standalone=

结合AnyChart做报表:一个生成AnyChart图形XML数据的工具类

今天头有点痛,所以不能详细地写了,先把代码贴上来,等身体状况稍微好一点,再继续完善. 1.(主角)一个使用XML模板生成Anychart XML数据的工具类 /** * */ package com.common.anychart; import java.io.InputStream; import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.l

C#读取XML文件的基类实现

刚到新单位,学习他们的源代码,代码里读写系统配置文件的XML代码比较老套,直接写在一个系统配置类里,没有进行类的拆分,造成类很庞大,同时,操作XML的读写操作都是使用SetAttribute和node.Attribute(name)方法,因此,想到结合之前所做的XML操作,完成了一个能够读取XML文件的基类,便于以后的使用. PS:即使再老套的代码,目前也不敢进行优化,一是水平不行,二是不敢. 使用静态扩展类,扩展了几个经常使用的类型,能够方便数据的读写. 操作XML的类,可以直接继承BaseL

iOS开发拓展篇—封装音频文件播放工具类

一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (id)initWithData:(NSData *)data error:(NSError **)outError; 准备播放(缓冲,提高播放的流畅性) - (BOOL)prepareToPlay;

list集合、txt文件对比的工具类和文件读写工具类

工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list,使用改方法的变种搞定. 1.txt文件.list集合比较工具 <span style="font-family:KaiTi_GB2312;font-size:18px;">package com.hudong.util.other; import java.util.Colle

文件夹工具类 - FolderUtils

文件夹工具类,提供创建完整路径的方法. 源码如下:(点击下载 -FolderUtils.java .commons-io-2.4.jar ) import java.io.File; import org.apache.commons.io.FilenameUtils; /** * 文件夹工具 * */ public class FolderUtils { /** * 创建完整路径 * * @param path * a {@link java.lang.String} object. */ p