android 解析xml文件有哪些xml解析器

Android 软件自动更新 (网络XML解析、以及本地xml软件版本两种解析方式) -android100学习网
Android 软件自动更新 (网络XML解析、以及本地xml软件版本两种解析方式)
XML放入网络空间---version.xml .url地址应该为正常***/*****.apk<update><version>5</version><name>yuanbao</
XML放入网络空间---version.xml .url地址应该为正常***/*****.apk
&&version&5&/version&
&&name&yuanbao&/name&
&url&http://cdn./data/upload///13/yuanbao.co.
cc_134532.apk
----------------主main
package gognzibai.co.
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
public class MainActivity extends Activity
&@Override
&public void onCreate(Bundle savedInstanceState)
& super.onCreate(savedInstanceState);
& setContentView(R.layout.main);
& //按钮更新
& Button updateBtn = (Button) findViewById
(R.id.btnUpdate);
& updateBtn.setOnClickListener(new OnClickListener()
&& @Override
&& public void onClick(View v)
&&& UpdateManager manager = new
UpdateManager(MainActivity.this);
&&& manager.checkUpdate();
-----------------ParseXmlService.java
package gongzibai.co.
import java.io.InputS
import java.util.HashM
import javax.xml.parsers.DocumentB
import javax.xml.parsers.DocumentBuilderF
import org.w3c.dom.D
import org.w3c.dom.E
import org.w3c.dom.N
import org.w3c.dom.NodeL
public class ParseXmlService {
&public HashMap&String, String& parseXml(
&& InputStream inStream)
&& throws Exception {
& HashMap&String, String& hashMap = new HashMap&String,
String&();
& DocumentBuilderFactory factory = DocumentBuilderFactory
&&& .newInstance();
& DocumentBuilder builder = factory
&&& .newDocumentBuilder();
& Document document = builder
&&& .parse(inStream);
& Element root = document
&&& .getDocumentElement();
& NodeList childNodes = root
&&& .getChildNodes();
& for (int j = 0; j & childNodes
&&& .getLength(); j++) {
&& Node childNode = (Node) childNodes
&&&& .item(j);
&& if (childNode.getNodeType() ==
Node.ELEMENT_NODE) {
&&& Element childElement = (Element)
&&& if ("version"
&&&&& .equals(childElement
.getNodeName())) {
&&&& hashMap.put(
&&&&&& "version",
&&&&&& childElement
.getFirstChild()
.getNodeValue());
&&& else if (("name"
&&&&& .equals(childElement
.getNodeName()))) {
&&&& hashMap.put(
&&&&&& "name",
&&&&&& childElement
.getFirstChild()
.getNodeValue());
&&& else if (("url"
&&&&& .equals(childElement
.getNodeName()))) {
&&&& hashMap.put(
&&&&&& "url",
&&&&&& childElement
.getFirstChild()
.getNodeValue());
& return hashM
-------------更新管理.UpdateManager.java
package gongzibai.co.
import java.io.F
import java.io.FileOutputS
import java.io.IOE
import java.io.InputS
import java.net.HttpURLC
import java.net.MalformedURLE
import java.net.URL;
import java.util.HashM
import android.app.AlertD
import android.app.D
import android.app.AlertDialog.B
import android.content.C
import android.content.DialogI
import android.content.I
import android.content.DialogInterface.OnClickL
import android.content.pm.PackageManager.NameNotFoundE
import android.net.U
import android.os.E
import android.os.H
import android.os.M
import android.view.LayoutI
import android.view.V
import android.widget.ProgressB
import android.widget.T
public class UpdateManager {
&private static final int DOWNLOAD = 1;
&private static final int DOWNLOAD_FINISH = 2;
&HashMap&String, String& mHashM
&private String mSaveP
&private boolean cancelUpdate =
&private Context mC
&private ProgressBar mP
&private Dialog mDownloadD
&private Handler mHandler = new Handler() {
& public void handleMessage(
&&& Message msg) {
&& switch (msg.what) {
&& case DOWNLOAD:
&&& mProgress
&&&&& .setProgress(progress);
&& case DOWNLOAD_FINISH:
&&& //安装APK
&&& installApk();
&& default:
&public UpdateManager(Context context) {
& this.mContext =
&//检查更新
&public void checkUpdate() {
& if (isUpdate()) {
&& showNoticeDialog();
& } else {
&& Toast.makeText(
&&&& mContext,
&&&& R.string.soft_update_no,
&&&& Toast.LENGTH_LONG)
&&&& .show();
&private boolean isUpdate() {
& int versionCode = getVersionCode(mContext);
& //本地的XML更新
& // InputStream inStream = ParseXmlService.class
& // .getResourceAsStream("version.xml");
& // InputStream inStream = ParseXmlService.class
& // .getClassLoader()
& // .getResourceAsStream(
& // "version1.xml");
& //解析网络xml进行更新软件
& URL url =
&& url = new URL(
"http://gongzibai./version.xml");
& } catch (MalformedURLException e1) {
&& // TODO Auto-generated catch block
&& e1.printStackTrace();
& HttpURLConnection conn =
&& conn = (HttpURLConnection) url
&&&& .openConnection();
& } catch (IOException e1) {
&& // TODO Auto-generated catch block
&& e1.printStackTrace();
& conn.setConnectTimeout(5000);
& InputStream is =
&& is = conn.getInputStream();
& } catch (IOException e1) {
&& // TODO Auto-generated catch block
&& e1.printStackTrace();
& ParseXmlService service = new ParseXmlService();
&& mHashMap = service
&&&& .parseXml(is);
& } catch (Exception e) {
&& e.printStackTrace();
& if (null != mHashMap) {
&& int serviceCode = Integer
&&&& .valueOf(mHashMap
&&&&&& .get
("version"));
&& if (serviceCode & versionCode) {
&private int getVersionCode(
&& Context context) {
& int versionCode = 0;
&& versionCode = context
&&&& .getPackageManager()
&&&& .getPackageInfo(
"gongzibai.co.cc",
&&&&&& 0).versionC
& } catch (NameNotFoundException e) {
&& e.printStackTrace();
& return versionC
&private void showNoticeDialog() {
& AlertDialog.Builder builder = new Builder(
&&& mContext);
& builder.setTitle(R.string.soft_update_title);
& builder.setMessage(R.string.soft_update_info);
& builder.setPositiveButton(
&&& R.string.soft_update_updatebtn,
&&& new OnClickListener() {
&&&& @Override
&&&& public void onClick(
&&&&&& DialogInterface
&&&&&& int which) {
&&&&& dialog.dismiss();
&&&&& showDownloadDialog();
& builder.setNegativeButton(
&&& R.string.soft_update_later,
&&& new OnClickListener() {
&&&& @Override
&&&& public void onClick(
&&&&&& DialogInterface
&&&&&& int which) {
&&&&& dialog.dismiss();
& Dialog noticeDialog = builder
&&& .create();
& noticeDialog.show();
&private void showDownloadDialog() {
& AlertDialog.Builder builder = new Builder(
&&& mContext);
& builder.setTitle(R.string.soft_updating);
& final LayoutInflater inflater = LayoutInflater
&&& .from(mContext);
& View v = inflater
&&& .inflate(
R.layout.softupdate_progress,
&&&&& null);
& mProgress = (ProgressBar) v
&&& .findViewById(R.id.update_progress);
& builder.setView(v);
& builder.setNegativeButton(
&&& R.string.soft_update_cancel,
&&& new OnClickListener() {
&&&& @Override
&&&& public void onClick(
&&&&&& DialogInterface
&&&&&& int which) {
&&&&& dialog.dismiss();
&&&&& cancelUpdate =
& mDownloadDialog = builder
&&& .create();
& mDownloadDialog.show();
& downloadApk();
&private void downloadApk() {
& new downloadApkThread().start();
&private class downloadApkThread
&& extends Thread {
& @Override
& public void run() {
&&& if (Environment
.getExternalStorageState()
&&&&& .equals
(Environment.MEDIA_MOUNTED)) {
&&&& String sdpath = Environment
.getExternalStorageDirectory()
&&&&&& + "/";
&&&& mSavePath = sdpath
&&&&&& + "download";
&&&& URL url = new URL(
&&&&&& mHashMap.get
&&&& HttpURLConnection conn =
(HttpURLConnection) url
.openConnection();
&&&& conn.connect();
&&&& int length = conn
.getContentLength();
&&&& InputStream is = conn
.getInputStream();
&&&& File file = new File(
&&&&&& mSavePath);
&&&& if (!file.exists()) {
&&&&& file.mkdir();
&&&& File apkFile = new File(
&&&&&& mSavePath,
&&&&&& mHashMap.get
("name"));
&&&& FileOutputStream fos = new
FileOutputStream(
&&&&&& apkFile);
&&&& int count = 0;
&&&& byte buf[] = new byte[1024];
&&&&& int numread = is
&&&&&&& .read
&&&&& count +=
&&&&& progress = (int)
(((float) count / length) * 100);
mHandler.sendEmptyMessage(DOWNLOAD);
&&&&& if (numread &= 0) {
mHandler.sendEmptyMessage(DOWNLOAD_FINISH);
&&&&& fos.write(buf,
&&&&&&& 0,
&&&& } while (!cancelUpdate);
&&&& fos.close();
&&&& is.close();
&& } catch (MalformedURLException e) {
&&& e.printStackTrace();
&& } catch (IOException e) {
&&& e.printStackTrace();
&& mDownloadDialog.dismiss();
&private void installApk() {
& File apkfile = new File(
&&& mSavePath,
&&& mHashMap.get("name"));
& if (!apkfile.exists()) {
& Intent i = new Intent(
&&& Intent.ACTION_VIEW);
& i.setDataAndType(
&&& Uri.parse("file://"
&&&&& + apkfile
.toString()),
&&& "application/vnd.android.package-
archive");
& mContext.startActivity(i);
&作者:gongzibai<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&用android自带的DOM来解析XML解析器_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
用android自带的DOM来解析XML解析器
||暂无简介
总评分0.0|
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
你可能喜欢Android 是针对移动设备的一种开源操作系统和SDK。借助它,您可以创建功能强大的移动应用程序。当您的应用程序可以访问 Web 服务时,其吸引力会大大增加,这意味着您需要使用Web语言:XML。在本文中,您将了解在Android上使用XML的不同方法,以及如何使用它们构建自己的Android应用程序。[]
在本例中,XmlSerializer类仅仅将事件推送到了一个java.io.StringWriter实例中。它提供了一个直观的API,通过各种方法开始和结束文档、处理元素以及添加文本或属性。这是StringBuilder的一种出色的替换方案,因为它可以更加轻松地确保您的XML具有良好结构。
客户端发送一个request请求,服务端就会以xml的数据格式返回一个response响应。但是在客户端界面展示xml数据并不是那么人性化与现实,所以在此之前,会对xml进行数据解析。纵观软终端的大部分项目中,在客户端进行数据解析采用的是SAX(Simple API for XML),这是有道理的。
在Android操作系统中,关于可视化编程的方法有很多种。这里主要就是针对Android使用XML的方法来为大家介绍一些这方面的应用。
51CTO旗下网站在Android中操作XML数据
视频太卡?试试切换线路
XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。本课时对XML数据格式进行介绍。
使用Android平台自带的API加载XML数据,并且按照XML的结构将所有数据解析出来。本课时讲解读取与解析XML数据。
使用Android平台自带的API创建符合XML规范的数据,并且将XML数据输出。本课时讲解生成与输出XML数据。
只有成为VIP会员才能提问&回复,快吧!如果你还没有账号你可以一个账号。
添加新技术问题
课程 [XML数据格式简介]
中已存在问题
添加新技术问题
问题描述越详细,被解答的速度越快
有新回答时请邮件提醒我
着急,拜托快点
不急,慢慢解决
关联课程 [XML数据格式简介]
正在读取中...
正在读取中...}

我要回帖

更多关于 android xml解析工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信