吾知网
标题: android 加载本地、远程xml的方式 [打印本页]
作者: jekeyhui99 时间: 2015-11-20 17:54
标题: android 加载本地、远程xml的方式
如果是本地xml文件,一般把xml文件放在项目文件夹assets中,程序中代码调用如下
- InputStream is = null;
- AssetManager manager = getAssets();
- try
- {
- is = manager.open("persons.xml"); //persons.xml保存在assets文件夹下
- } catch (IOException e)
- {
- e.printStackTrace();
- }
如果是远程xml文件,通过一个http请求返回,则有如下两种方式
方式一:从应用程序发起http
- InputStream is = null;
- AssetManager manager = getAssets();
- try
- {
- //从应用程序发起http
- String url = "http://xxx.xxxxxx.xxx/service2.asmx/getSaleStates4building?curNum=1"; //远程http地址
- URL myUrl = new URL(url);
- HttpURLConnection conn = (HttpURLConnection)myUrl.openConnection();
- conn.setDoInput(true);
- conn.connect();
- is = conn.getInputStream();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
方式二:通过Apache API方式
- InputStream is = null;
- AssetManager manager = getAssets();
- try
- {
- //Apache API 方式
- HttpGet url = new HttpGet("http://xxx.xxxxxx.xxx/service2.asmx/getSaleStates4building?curNum=1"); //远程http地址
- HttpResponse httpResponse = new DefaultHttpClient().execute(url);
- is = httpResponse.getEntity().getContent();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
以上方式都得到Inputstream,通过android支持的dom、sax、pull三种xml解析方式中的一种来解析获取到的inputstream即可。
当然后两种方式要在AndroidManifest.xml 中配置允许访问互联网的权限。
欢迎光临 吾知网 (http://5g99.com/bbs/) |
Powered by Discuz! X3.2 |