2012-01-13 15 views
1

私は遠隔地にxmlファイルを持っています。私はアンドロイド2.2を使用しています。Androidのリモートxmlファイルを読む

P.S:/ resフォルダにあるローカルXMLファイルにアクセスできます。 私はxPathについて何も知らない。

+0

何か面白いもの... .. – user370305

+0

のthatsちょうどxmlファイルには、いくつかの生data.Hereはないですが含まれレイアウト/マニフェストXMLについて取り上げます。 – advishnuprasad

+0

それから、有効なxmlパーサによってそれを使うことができます。 – user370305

答えて

2
try { 
      //set the download URL, a url that points to a file on the internet 
      //this is the file to be downloaded 
      URL url = new URL("http://IP/Downloads/data.xml"); 

      //create the new connection 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 



      //and connect! 
      urlConnection.connect(); 

      //set the path where we want to save the file 
      //in this case, going to save it on the root directory of the 
      //sd card. 
      File SDCardRoot = Environment.getExternalStorageDirectory(); 
      //create a new file, specifying the path, and the filename 
      //which we want to save the file as. 
      File file = new File(SDCardRoot,"data.xml"); 

      //this will be used to write the downloaded data into the file we created 
      FileOutputStream fileOutput = new FileOutputStream(file); 

      //this will be used in reading the data from the internet 
      InputStream inputStream = urlConnection.getInputStream(); 

      //this is the total size of the file 
      int totalSize = urlConnection.getContentLength(); 
      progressDialog.setMax(totalSize); 

      //variable to store total downloaded bytes 
      int downloadedSize = 0; 

      //create a buffer... 
      byte[] buffer = new byte[1024]; 
      int bufferLength = 0; //used to store a temporary size of the buffer 

      //now, read through the input buffer and write the contents to the file 
      while ((bufferLength = inputStream.read(buffer)) > 0) { 
        //add the data in the buffer to the file in the file output stream (the file on the sd card 
        fileOutput.write(buffer, 0, bufferLength); 
        //add up the size so we know how much is downloaded 
        downloadedSize += bufferLength; 

      } 
      //close the output stream when done 
      fileOutput.close(); 
      //catch some possible errors... 
    } catch (MalformedURLException e) { 
      e.printStackTrace(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 

あなたのxmlファイルをダウンロードするためにこのコードを試してみて、文字列でそれを読んで、あなたはそれでやりたいものは何でもするには、XML http://www.java-samples.com/showtutorial.php?tutorialid=152

+0

を使用しました。私の検索query.ty frをダイナミックに使用しています。 – advishnuprasad

+0

Couldnt get u .. ?? **私の検索クエリで**動的にそれを意味します** –

0

リモートxmlでレイアウトや描画可能またはスタイルを設定しようとしている場合、できません。

+0

を使用する必要があります。いいえ、ちょうどいくつかの他の目的のためにXMLデータを使用したいです。 – advishnuprasad

+0

レイアウトを設定しないようにし、HTTP接続を使用して、それを解析する。 – jeet

+1

正確に...私は問題があるだけです。 URL url =新しいURL( "http://www.something.com/vishnu.xml"); urlConnection =(HttpsURLConnection)url.openConnection(); InputStream in =新しいBufferedInputStream(URLConnection.getInputStream()); – advishnuprasad

0

より良い方法を読み取るためのチュートリアルを確認してください。

public String getXmlFromUrl(String url) {
String xml = null;あなたがあなたの活動にレイアウトとして設定したい場合は、私はあなたがいないことができると思い

try 
{ 
    //default http client 
    HttpClient httpClient = new DefaultHttpClient(); 

    HttpPost httpPost = new HttpPost(url); 

    System.out.println("URL IN PARSER:==="+url+"===="); 

    HttpResponse httpResponse = httpClient.execute(httpPost); 

    HttpEntity httpentity = httpResponse.getEntity(); 

    xml = EntityUtils.toString(httpentity); // I have changed it... because  occur while downloading.. 

    Log.d("response", xml); 
} 
catch(UnsupportedEncodingException e) 
{ 
    e.printStackTrace(); 
} 
catch (ClientProtocolException e) 
{ 
    e.printStackTrace(); 
} 
catch (IOException e) 
{ 
    e.printStackTrace(); 
} 


return xml; 

}