有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android中从URL读取XML文件

我尝试了几种从链接打开XML文件的方法,但所有这些方法都没有任何效果。 为了确保解析XML文件是好的,我下载了该文件并将其放在Asset文件夹中,以便解析所有这些内容。 我们可以由此推断从url读取时的错误

URL是http://feeds.bbci.co.uk/sport/0/football/rss.xml?edition=uk

HttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet(url.toString());
HttpResponse response = httpclient.execute(httppost);
InputStream in=response.getEntity().getContent();

或者

HttpURLConnection con=(HttpURLConnection)url.openConnection();
InputStream in=con.getInputStream();

或者

InputStream in =url.openStream();

请帮帮我

我的问题解决了谢谢大家的帮助。当我从Url获取文件时,我应该使用AsyncTask类


共 (1) 个答案

  1. # 1 楼答案

    enter image description here

      String TextHolder = "", TextHolder2 = "";
    public class GetNotePadFileFromServer extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog.show();
        }
        @Override
        protected Void doInBackground(Void... params) {
            String userId = SharedPrefHelper.getPrefsHelper().getPref(SharedPrefHelper.PREF_USER_ID);
    
            try {
                URL url = new URL(baseUrl+"fileName.xml");
                BufferedReader bufferReader = new BufferedReader(new InputStreamReader(url.openStream()));
                while ((TextHolder2 = bufferReader.readLine()) != null) {
                    TextHolder += TextHolder2;
                }
                bufferReader.close();
    
            } catch (MalformedURLException malformedURLException) {
                malformedURLException.printStackTrace();
                TextHolder = malformedURLException.toString();
    
            } catch (IOException iOException) {
                iOException.printStackTrace();
                TextHolder = iOException.toString();
            }
            return null;
    
        }
    
        @Override
        protected void onPostExecute(Void finalTextHolder) {
            Document doc = convertStringToXMLDocument( TextHolder );
            doc.getDocumentElement().normalize();
            NodeList nList = doc.getElementsByTagName(ApiConstant.ApiKeys.SMS_MESSAGE);
            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);
                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
    
                    Sms sms = new Sms(
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_IDS).item(0).getTextContent(),
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_ADDRESS).item(0).getTextContent(),
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_BODY).item(0).getTextContent(),
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_READ).item(0).getTextContent(),
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_DATE).item(0).getTextContent(),
                            eElement.getElementsByTagName(ApiConstant.ApiKeys.SMS_TYPE).item(0).getTextContent(),
                            false
                    );
    
                    LogClass.e("mysms",""+sms.getAddress());
                    smsArrayList.add(sms);
                }
            }
    
            setUi();
            progressDialog.dismiss();
            super.onPostExecute(finalTextHolder);
        }
    
    }
    
    
      new GetNotePadFileFromServer().execute();