有 Java 编程相关的问题?

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

java需要在Android Studio中使用Jsoup的帮助

我需要一些帮助从标记为“a”的标签中获取文本。我看过一些教程,但我不确定我做错了什么

爪哇:

`public class doit extends AsyncTask<Void,Void,Void> {
        ArrayList<String> dayMenu;
        String words;
        @Override
        protected Void doInBackground(Void... params) {

            try {
                Document doc = Jsoup.connect("Cant Post URL For Reasons").get();
                dayMenu = new ArrayList<String>();
                //String monday26 = "ul.vertical.medium-horizontal.menu.item.drilldown ul";
                String str = "#MainContent_RptMenuCalendar_RptMenuItems_0_LbtnMenuItems_0 vertical.medium-horizontal.menu.item.drilldown a";
                String str1 = "div.is-drilldown a";
                String mon26 = "a.MainContent_RptMenuCalendar_RptMenuItems_0_LbtnMenuItems_0 a";
                System.out.println(words);
                String str2 = "div.is-drilldown a";
                int i =0;
                Elements temp = doc.select("ul.vertical.medium-horizontal.menu.item.drilldown");
                for (Element menuItems : temp) {
                    i++;
                    //System.out.println(i + " " + menuItems.getElementsByTag("a").first().text());
                    dayMenu.add(menuItems.getElementsByTag("li").first().text().toString());
                }
                words = String.valueOf(i);


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



            return null;


        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            //if ((dayMenu.get(0).length()) > 2)
                //System.out.println(words);
            //else
                for (int i = 0; i < dayMenu.size(); i++){
                    System.out.println(dayMenu.get(i));
                }
                System.out.println(words);

        }
    }`

Html:(The Html) I highlighted the portion I am trying to extract.


共 (1) 个答案

  1. # 1 楼答案

    这个

    Elements temp = doc.select("ul.vertical.medium-horizontal.menu.item.drilldown");
    

    这是行不通的。该类是一个字符串而不是多个字符串,您可以一次深入到一个级别。。。这就是它能有效做到的。有关选择器语法的信息,请参见https://jsoup.org/cookbook/extracting-data/dom-navigation

    相反,试试下面的方法,你可能会更幸运:

    Elements temp = doc.select("ul[@class='vertical medium-horizontal menu item drilldown'] li a");
    for (Element ahref : temp){
        System.out.println(ahref.text());
    }