簡體   English   中英

jsoup在android中獲取並顯示表內容

[英]jsoup fetching and displaying table contents in android

我有一個從獲取表內容的一個java程序鏈接。 我想通過在textview中顯示它來在android中做同樣的事情。

下面是我的java代碼

public class VtuFetch {
    public static void main(String[] args) throws Exception {

         Document doc = Jsoup.connect("http://www.fastvturesults.com/check_new_results/1rn11cs030").
                userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36").get();
        for (Element table : doc.select("table[id=scell]")) {
            for (Element row : table.select("tr:gt(0)")) {
               Elements tds = row.select("td:not([rowspan])");
               System.out.println("Semester"+" "+"Attempt"+" "+" "+"Total Marks"+" "+"     Result"+" "+"                          Percentage");
               System.out.println(tds.get(0).text() + "        " + tds.get(1).text()+"          "+ tds.get(2).text()+"            "+ tds.get(3).text()+"                              "+ tds.get(4).text());
            }
       }
    }
}

以下是我的android代碼,它提取了相同的鏈接。

private class GetMakrs extends AsyncTask<Void, Void, Void> {
        String desc;
        Elements tds;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            mProgressDialog = new ProgressDialog(MainActivity.this);
            mProgressDialog.setTitle("Android Basic JSoup Tutorial");
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
        }
        @Override
        protected Void doInBackground(Void... params) {
            try {
                // Connect to the web site
                 Document doc = Jsoup.connect("http://www.fastvturesults.com/check_new_results/1rn11cs030").
                            userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36")
                            .get();

                                // Using Elements to get the Meta data
                Elements description = doc.select("meta[name=description]");
                for (Element table : doc.select("table[id=scell]")) {
                    for (Element row : table.select("tr:gt(0)")) {
                       Elements tds = row.select("td:not([rowspan])");
                       System.out.println("Semester"+" "+"Attempt"+" "+" "+"Total Marks"+" "+"     Result"+" "+"                          Percentage");

                       System.out.println(tds.get(0).text() + "        " + tds.get(1).text()+"          "+ tds.get(2).text()+"            "+ tds.get(3).text()+"                              "+ tds.get(4).text());


                    }
               }
                // Locate the content attribute
                desc = description.attr("content");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // Set description into TextView
            TextView txtdesc = (TextView) findViewById(R.id.MarksShow);
            txtdesc.setText(desc);
            mProgressDialog.dismiss();
        }
    }

我可以檢索此人的名字,但是表格內容沒有顯示。

PS Java代碼工作正常,我在將其移植到Android時遇到問題

這應該設置正確的文本,而不是打印它:

private class GetMakrs extends AsyncTask<Void, Void, Void> {
        String desc = ""; //<-Important!
        Elements tds;

        ...

        @Override
        protected Void doInBackground(Void... params) {
            try {
                // Connect to the web site
                 ...

            Elements description = doc.select("meta[name=description]");
             for (Element table : doc.select("table[id=scell]")) {
                for (Element row : table.select("tr:gt(0)")) {
                 Elements tds = row.select("td:not([rowspan])");
                 desc = desc + "Semester"+" "+"Attempt"+" "+" "+"Total Marks"+" "+"     Result"+" "+"                          Percentage";

                 desc = desc + "\n" + tds.get(0).text() + "        " + tds.get(1).text()+"          "+ tds.get(2).text()+"       "+tds.get(3).text()+"      "+ tds.get(4).text();

                 desc = desc + "\n";


                    }
               }
                ...
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // Set description into TextView
            TextView txtdesc = (TextView) findViewById(R.id.MarksShow);
            txtdesc.setText(desc);
            mProgressDialog.dismiss();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM