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 中配置允许访问互联网的权限。
页:
[1]