如何下载XML并转换为字符串

时间:2016-03-09 19:02:52

标签: java android

如何从URL下载XML文件并将XML文件转换为字符串?特别是,我想下载RSS源并将其转换为字符串。

我试过这个,但它没有用:



protected List<Rss> doInBackground(Void... params) {

       String xmlContent;
       Document doc  = null;

        try {
            doc = Jsoup.connect(feedUrl).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        xmlContent = doc.toString();
        return RssParser.parseFeed(xmlContent);
    }
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

您可以使用HttpURLConnection,示例代码:

String xmlString;
HttpURLConnection urlConnection = null;
URL url = new URL("http://example.com");
String userName = "test";
String password = "password";
try {
    urlConnection = (HttpURLConnection)url.openConnection();
    // set authentication
    String userCredentials = userName+":"+password;
    String basicAuth = "Basic " + new String(Base64.encode(userCredentials.getBytes(), Base64.DEFAULT));
    urlConnection.setRequestProperty("Authorization", basicAuth.trim());
    // set request method
    urlConnection.setRequestMethod("GET");
    if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
        StringBuilder xmlResponse = new StringBuilder();
        BufferedReader input = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()), 8192);
        String strLine = null;
        while ((strLine = input.readLine()) != null) {
             xmlResponse.append(strLine);
        }
        xmlString = xmlResponse.toString();                
        input.close();
    }
  }
  catch (Exception e) {// do something

  }
  finally {// close connection
    if (urlConnection != null) {
        urlConnection.disconnect();
      }
 }

答案 1 :(得分:1)

使用URLConnection或HttpUrlConnection子类下载文件。

http://developer.android.com/reference/java/net/URLConnection.html

使用StringBuilder类获取文件内容然后使用toString() 完成后。

http://developer.android.com/reference/java/lang/StringBuilder.html

Oracle连接示例:

https://docs.oracle.com/javase/tutorial/networki/urls/readingWriting.html

答案 2 :(得分:1)

关注Android开发者网站上的this

基本上你只需要使用以下类:

网址 - 创建新的URl。

HttpURLConnection - 打开与网址的连接

InputStream - 获取回复。

确保使用AsyncTask或secondery Thread接近网络,不要在主线程上执行

响应将自动返回字符串,如果您打开与 XML 文件, JSON 文件的连接,甚至是 IMAGE (不是真正可读,但仍然是字符串)文件。

如果您仍然需要,我会尝试编辑并撰写完整的答案。