简体   繁体   English

JSoup将文本存储在变量中

[英]JSoup storing text in a variable

i'm new in JAVA / Android development. 我是JAVA / Android开发的新手。

I made an app to extract text from a HTML class; 我制作了一个应用程序,用于从HTML类提取文本;

protected List<String> doInBackground(String... url) {
        try {
            Document doc = Jsoup.connect(
                    "http://example/test.html").get();

            Elements st1 = doc.select("a[class*=subject_rating_details");

            for (Element element : st1) {
                sgrade[0] = st1.get(0).text();
                sgrade[1] = st1.get(0).text();
                sgrade[2] = st1.get(0).text();
                sgrade[3] = st1.get(0).text();
                sgrade[4] = st1.get(0).text();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        List<String> pinfo = null;
        return pinfo;
    }

    @Override
    protected void onPostExecute(List<String> pinfo) {
        prog.dismiss();
    }
}

List<ListData> varlist = new ArrayList<ListData>();
String sgrade[] = new String[] {};

I used JSoup to extract from my webpage different text from the HTML class="subject_rating_details". 我使用JSoup从我的网页中提取了HTML class =“ subject_rating_details”的不同文本。

But it force closes with the code above. 但是它强制与上面的代码一起关闭。

I can successfully extract it with a single String, example: 我可以使用单个String成功提取它,例如:

for (Element element : st1) {
stringname = st1.get(0).text();
stringname = st1.get(1).text();
stringname = st1.get(2).text();
stringname = st1.get(3).text();
stringname = st1.get(4).text();
}

But it only stores the last one ( stringname = st1.get(4).text(); ) 但它仅存储最后一个(stringname = st1.get(4).text();)

I've tried also: 我也尝试过:

for (Element element : st1) {
stringname1 = st1.get(0).text();
stringname2 = st1.get(1).text();
stringname3 = st1.get(2).text();
stringname4 = st1.get(3).text();
stringname5 = st1.get(4).text();
}

But i need the text from st1 in a single variable. 但是我需要来自st1的文本在单个变量中。

What can i do? 我能做什么?

Thanks 谢谢

EDIT 编辑

I want something like this: 我想要这样的东西:

String sgrade[] = new String[] {}; 字符串sgrade [] =新的String [] {};

for (Element element : st1) {
                sgrade[0] = st1.get(0).text();
                sgrade[1] = st1.get(0).text();
                sgrade[2] = st1.get(0).text();
                sgrade[3] = st1.get(0).text();
                sgrade[4] = st1.get(0).text();

} }

Witch later i could read each text and display it in a TextView: 女巫以后,我可以阅读每个文本并将其显示在TextView中:

textview1.setText(sgrade[0]); <--/// This would display "Ford"
textview2.setText(sgrade[1]); <--/// This would display "Mustang"
textview3.setText(sgrade[2]); <--/// This would display "2013"

/// HTML ///

...

<p class="subject_rating_details">Ford</p>
<p class="subject_rating_details">Mustang</p>
<p class="subject_rating_details">2013</p>

...

/// HTML ///

Please try this way. 请尝试这种方式。 With this you will get value of st1 in single string named stringname. 这样,您将在名为stringname的单个字符串中获得st1的值。

List<String>   stringname =new ArrayList<String>();

  for (Element element : st1) {
stringname.add(st1.get(0).text());
stringname.add(st1.get(1).text());
stringname.add(st1.get(2).text());
stringname.add(st1.get(3).text());
stringname.add(st1.get(4).text());
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM