Почему Jsoup по-разному обрабатывает данные в Java / Android - PullRequest
0 голосов
/ 10 февраля 2012

Я пытался соскрести 'Школьные уведомления' с этого URL http://www.isleworthsyon.hounslow.sch.uk/

Я попытался очистить текст на Java, а затем заменил все "" (что я не уверен, что это за символ,) с новой строкой, использующей метод String.replaceAll, и она работала абсолютно нормально с отличными результатами, но когда я применяю тот же код для Android ... это дает мне другие результаты.

IN JAVA:

String URL = "http://www.isleworthsyon.hounslow.sch.uk/";

Document site = null;
try {
    site = Jsoup.connect(URL).get();
} catch (IOException e) {

    e.printStackTrace();
}


        String HTML = site.html();

        site.select("a").remove();

        Elements news = site.select("div#np_91983-1");

        String output = news.text();


        String for_output_text = output.replaceAll("   ","\n\n");

        System.out.println(for_output_text);

}

}

IN ANDROID:

super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final TextView text = (TextView)findViewById(R.id.text);

        String URL = "http://www.isleworthsyon.hounslow.sch.uk/";

        Document site = null;
        try {
            site = Jsoup.connect(URL).get();
        } catch (IOException e) {

            e.printStackTrace();
        }

        site.select("a").remove();

        Elements news = site.select("div#np_91983-1");

        String output = news.text();

        String for_output_text = output.replaceAll("   ","\n\n");

        text.setText(for_output_text);
        }

Два выходных текста отличаются, как вы можете видеть ниже

http://dl.dropbox.com/u/35866688/Comparison.png

кстатиэто моя первая попытка просмотра веб-страниц

Редактировать: После экспериментов строки, которые я получаю из news.text (), имеют разные расстояния в java и android.Любые предложения относительно того, почему это так и есть ли альтернативы?

1 Ответ

0 голосов
/ 12 февраля 2012

Наконец-то! Я нашел лучшее решение; использовать для цикла и добавить каждый элемент отдельно.

final TextView text = (TextView)findViewById(R.id.text);

        String URL = "http://www.isleworthsyon.hounslow.sch.uk/";

        Document site = null;
        try {
            site = Jsoup.connect(URL).get();
        } catch (IOException e) {

            e.printStackTrace();
        }

        site.select("a").remove();

        Elements news = site.select("div#np_91983-1");

        Elements newsline = news.select("[align~=center]");

        String output = "";
        String  oldline = "";

        for (int i = 0; i < newsline.size(); i++) {


            String  newline = oldline + "\n" + newsline.get(i).text();  
            oldline = newline;
            output = newline;
          }           

        text.setText(output);

Спасибо всем, кто помог

...