在android上的XML文件,怎么样从远程服务器上获取

问题描述

在android上的XML文件,怎么样从远程服务器上获取
需要在远程服务器上读取XML文件,然后再修改本地android上的数据。我用XmlPullParser读取数据。

XmlPullParser users;            try {                URL xmlUrl = new URL(""http://xx.xx.xx.xx/1.xml"");                users = XmlPullParserFactory.newInstance().newPullParser();                users.setInput(xmlUrl.openStream() null);            }

怎么样在安卓上修改?

解决方案

用下面的代码,他会覆盖你从网上下载的文件:

public static boolean downloadFile(String fileToDownload File newPath            String newFileName) {        try {            URL url = new URL(fileToDownload);            HttpURLConnection urlConnection = (HttpURLConnection) url                    .openConnection();            urlConnection.setRequestMethod(""GET"");            urlConnection.setDoOutput(true);            urlConnection.connect();            if (!newPath.isDirectory()) {                CreateLog.createFolder(newPath.toString());            }            File file = new File(newPath.toString() + ""/"" + newFileName);            if (!file.isFile()) {                CreateLog.writeLogToFile(newPath.toString() + newFileName%TEMP%"");            }            FileOutputStream fileOutput = new FileOutputStream(file);            InputStream inputStream = urlConnection.getInputStream();            byte[] buffer = new byte[1024];            int bufferLength = 0;            while ((bufferLength = inputStream.read(buffer)) > 0) {                fileOutput.write(buffer 0 bufferLength);            }            fileOutput.close();            return true;        } catch (MalformedURLException e) {            CreateLog.addToLog(e.toString());            return false;        } catch (IOException e) {            CreateLog.addToLog(e.toString());            return false;        }    }public static void createFolder(String filePath) {    File createFolder = new File(filePath);    createFolder.mkdirs();}

更简单的方式是Asynctask,代码是在一个新线程里:

private class GetProblems extends AsyncTask<String Integer String> {        @Override        protected void onPreExecute() {            super.onPreExecute();        }        @Override        protected String doInBackground(String... params) {            for (String myUrl : params) {                try {                    URL url = new URL(myUrl);                    URLConnection ucon = url.openConnection();                    ucon.setRequestProperty(""Accept""application/xml"");                    InputStream is = ucon.getInputStream();                    BufferedInputStream bis = new BufferedInputStream(is);                    ByteArrayBuffer baf = new ByteArrayBuffer(50);                    int current = 0;                    while ((current = bis.read()) != -1) {                        baf.append((byte) current);                    }                    String str = new String(baf.toByteArray()UTF8"");                    return str;                } catch (MalformedURLException e) {                    CreateLog.addToLog(""[GetProblems] "" + e.toString());                } catch (IOException e) {                    CreateLog.addToLog(""[GetProblems] "" + e.toString());                }            }            return ""error"";        }        @Override        protected void onProgressUpdate(Integer... values) {            super.onProgressUpdate(values);            // updateProgressBar(values[0]);        }        @Override        protected void onPostExecute(String result) {            super.onPostExecute(result);                        ...write result to a file        }    }

运行AsyncTask:

new GetProblems().execute(""http://myurl.com/xmlfile.xml"");

解决方案二:
流程是:数据获取->数据解析->数据显示
你的问题是修改本地的数据?你不觉这是个泛型描述吗
本地数据千千万,要改数据库,要改一个textView或是来个动态布局等等
解析xml需要你对其Node了解(xml节点)

解决方案三:
1、访问服务器的xml文件

2、解析xml文件,获取解析的数据

3、通过解析的数据来修改本地数据(数据库 or 数据文件 or others)

思路很清晰,不知道楼主的迷茫在哪?

时间: 2024-12-24 00:13:33

在android上的XML文件,怎么样从远程服务器上获取的相关文章

在installshield2008里如何让用户输入:服务器名,用户名和密码;之后又如何使用Secured FTP把文件安装到远程服务器上?

问题描述 如题:在installshield2008 里如何让用户输入:服务器名,用户名和密码:之后又如何使用SecuredFTP把文件安装到远程服务器上? 解决方案 解决方案二:up解决方案三:谢谢帮顶

android编程之XML文件解析方法详解(附源码)_Android

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8

android编程之XML文件解析方法详解(附源码)

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8

Android 中Manifest.xml文件详解

Android 中Manifest.xml文件详解 每一个Android项目都包含一个清单(Manifest)文件--AndroidManifest.xml,它存储在项目层次中的最底层.清单可以定义应用程序及其组件的结构和元数据. 它包含了组成应用程序的每一个组件(活动.服务.内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的. 它还提供了各种属性来详细地说明应用程序的元数据(如它的图标或者主题)以及额外的可用来进行安全设置和单

struts2上传xml文件末尾出现很多框框导致无法解析怎么解决?

问题描述 struts2上传xml文件末尾出现很多框框导致无法解析怎么解决? 异常:Content is not allowed in trailing section. 解决方案 问题找到了 这个是因为上传的时候out.write(buffer)导致出现文件结尾多出空格的原因 改为out.write(buffer,0,n); 也就是读多少写多少

布局-Android中不同xml文件中id可以重复么?

问题描述 Android中不同xml文件中id可以重复么? Android中如果两个layout布局文件中都有一个TextView控件,而且拥有同样的id,那样的话会乱套嘛? 比如我有a.xml,中间有控件TextView id为tv,有b.xml,中间有控件TextView id为tv,在R文件中能看到id内部类中只有一个tv常量,调用时是因为用之前是用色图ContentView设置了对应的布局所以不会混乱嘛,还是说就是会混乱的呢,我记得以前好像用的时候用混乱过,但是今天听老师讲课说是可行的,

struts2 怎么上传XML文件

问题描述 最近做一个项目要上传XML文件,现在上传后后的xml文件会自动增加一部分内容,不知道为什么?哪位大侠知道是什么原因! 解决方案 解决方案二:byte流上传也增加一部分内容么?解决方案三:这么快就有回复,多谢关注!我用的是struts2自带的上传!环境是JDK1.6+Tomcat6.0解决方案四:有谁知道么?在线等!

android TypedArray 读取xml文件

问题描述 android TypedArray 读取xml文件 我用TypedArray 读取xml文件,其中有一个标签为"@string/XXXX"的形式. 我希望得到的内容为"@string/XXXX"的字符串,而不是@string/XXXX所指向的资源. 希望各位大牛解答一下. 解决方案 http://jingyan.baidu.com/article/7c6fb4287dee3780642c90b0.html

android项目出错-求助,为什么android项目的xml文件的webview标签的android id报错

问题描述 求助,为什么android项目的xml文件的webview标签的android id报错 求助,为什么android项目的xml文件的webview标签的android id报错 解决方案 报什么错,是不是id重复了 解决方案二: 贴出页面可好.凑足十个字 解决方案三: 我感觉你的id重复了,你看看红字是不是两行