0

私はJAVA / Android開発の初心者です。

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[] {};

JSoup を使用して、Web ページから HTML class="subject_rating_details" とは異なるテキストを抽出しました。

しかし、上記のコードで強制終了します。

単一の文字列で正常に抽出できます。例:

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();
}

ただし、最後のもののみを保存します( stringname = st1.get(4).text(); )

私も試しました:

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();
}

しかし、単一の変数で st1 からのテキストが必要です。

私に何ができる?

ありがとう

編集

私はこのようなものが欲しい:

文字列 sgrade[] = 新しい文字列[] {};

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();

}

後で、各テキストを読み込んで 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 ///
4

1 に答える 1

0

この方法をお試しください。これにより、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());
}
于 2013-11-03T05:19:53.390 に答える