使用jSoup Parser无法在Android TextView中显示HTML数据

问题描述

本月我一直在尝试使用jSoup解析html页面,但没有成功。我尝试解析的HTML数据未显示在Android TextView中,也未显示在Android Activity中的任何位置。我一直试图解析的xml数据的网址包含在代码中。请在下面找到我的代码

...

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Headlines extends Activity {

    TextView oneTitle;
    TextView oneDes;
    TextView oneDate;
    TextView oneGen;

    TextView twoTitle;
    TextView twoDes;
    TextView twoDate;
    TextView twoGen;

    TextView threeTitle;
    TextView threeDes;
    TextView threeDate;
    TextView threeGen;

    TextView fourTitle;
    TextView fourDes;
    TextView fourDate;
    TextView fourGen;

    TextView fiveTitle;
    TextView fiveDes;
    TextView fiveDate;
    TextView fiveGen;

    String hOne;
    String hTwo;
    String hThree;
    String hFour;
    String hFive;

    String dOne;
    String dTwo;
    String dThree;
    String dFour;
    String dFive;

    String daOne;
    String daTwo;
    String daThree;
    String daFour;
    String daFive;

    String gOne;
    String gTwo;
    String gThree;
    String gFour;
    String gFive;

    ProgressDialog mDialog;
    String mWeb = "https://www.standardmedia.co.ke/RSS/headlines.PHP";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_headlines);

        oneTitle = (TextView)findViewById(R.id.hTitle1);
        oneDes = (TextView)findViewById(R.id.hDes1);
        oneDate = (TextView)findViewById(R.id.hDate1);
        oneGen = (TextView)findViewById(R.id.hGen1);

        twoTitle = (TextView)findViewById(R.id.hTitle2);
        twoDes = (TextView)findViewById(R.id.hDes2);
        twoDate = (TextView)findViewById(R.id.hDate2);
        twoGen = (TextView)findViewById(R.id.hGen2);

        threeTitle = (TextView)findViewById(R.id.hTitle3);
        threeDes = (TextView)findViewById(R.id.hDes3);
        threeDate = (TextView)findViewById(R.id.hDate3);
        threeGen = (TextView)findViewById(R.id.hGen3);

        fourTitle = (TextView)findViewById(R.id.hTitle4);
        fourDes = (TextView)findViewById(R.id.hDes4);
        fourDate = (TextView)findViewById(R.id.hDate4);
        fourGen = (TextView)findViewById(R.id.hGen4);

        fiveTitle = (TextView)findViewById(R.id.hTitle5);
        fiveDes = (TextView)findViewById(R.id.hDes5);
        fiveDate = (TextView)findViewById(R.id.hDate5);
        fiveGen = (TextView)findViewById(R.id.hGen5);

        new Downloader().execute();

    }

    private class Downloader extends AsyncTask<Void,Void,Void>
    {

        @Override
        protected void onPreExecute()
        {
    
            super.onPreExecute();
            mDialog = new ProgressDialog(Headlines.this);
            mDialog.setCancelable(false);
            mDialog.setMessage("Please Wait...");
            mDialog.setIndeterminate(true);
            mDialog.show();

        }

        @Override
        protected Void doInBackground(Void... args)
        {

            try
            {

                Document mDocument = Jsoup.connect(mWeb).get();

                Elements mTitle = mDocument.select("title");
                Elements mDescription = mDocument.select("description");
                Elements mDate = mDocument.select("pubDate");
                Elements mGen = mDocument.select("link");

                Element title1 = mTitle.get(2);
                Element title2 = mTitle.get(3);
                Element title3 = mTitle.get(4);
                Element title4 = mTitle.get(5);
                Element title5 = mTitle.get(6);

                Element des1 = mDescription.get(3);
                Element des2 = mDescription.get(4);
                Element des3 = mDescription.get(5);
                Element des4 = mDescription.get(6);
                Element des5 = mDescription.get(7);

                Element date1 = mDate.get(1);
                Element date2 = mDate.get(2);
                Element date3 = mDate.get(3);
                Element date4 = mDate.get(4);
                Element date5 = mDate.get(5);

                Element gen1 = mGen.get(2);
                Element gen2 = mGen.get(3);
                Element gen3 = mGen.get(4);
                Element gen4 = mGen.get(5);
                Element gen5 = mGen.get(6);

                hOne = title1.text();
                hTwo = title2.text();
                hThree = title3.text();
                hFour = title4.text();
                hFive = title5.text();


                dOne = des1.text() + "\n";
                dTwo = des2.text() + "\n";
                dThree = des3.text() + "\n";
                dFour = des4.text() + "\n";
                dFive = des5.text() + "\n";

                daOne = date1.text() + "\n";
                daTwo = date2.text() + "\n";
                daThree = date3.text() + "\n";
                daFour = date4.text() + "\n";
                daFive = date5.text() + "\n";

                gOne = gen1.text() + "\n" + "\n" + "\n" + "\n" + "\n" + "\n";
                gTwo = gen2.text() + "\n" + "\n" + "\n" + "\n" + "\n" + "\n";
                gThree = gen3.text() + "\n" + "\n" + "\n" + "\n" + "\n" + "\n";
                gFour = gen4.text() + "\n" + "\n" + "\n" + "\n" + "\n" + "\n";
                gFive = gen5.text() + "\n" + "\n" + "\n" + "\n" + "\n" + "\n";

            }
            catch(Exception ex)
            {

                Log.e("Error",ex.getMessage());
                ex.printstacktrace();

            }

            return null;

        }

        @Override
        protected void onPostExecute(Void arg)
        {

                oneTitle.setText(hOne);
                oneDes.setText(dOne);
                oneDate.setText(daOne);
                oneGen.setText(gOne);

                twoTitle.setText(hTwo);
                twoDes.setText(dTwo);
                twoDate.setText(daTwo);
                twoGen.setText(gTwo);

                threeTitle.setText(hThree);
                threeDes.setText(dThree);
                threeDate.setText(daThree);
                threeGen.setText(gThree);

                fourTitle.setText(hFour);
                fourDes.setText(dFour);
                fourDate.setText(daFour);
                fourGen.setText(gFour);

                fiveTitle.setText(hFive);
                fiveDes.setText(dFive);
                fiveDate.setText(daFive);
                fiveGen.setText(gFive);

            mDialog.dismiss();

        }

    }



}

...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)