我正在使用自己的Android应用程序,而且我是解析新手。我有网站,我有这样的代码块。
<div class="row">
<div class="col-xs-12" style="margin:0.5em 0;line-height:1.785em">
some text <br> some text <br> some text
</div> </div>
我想把这个文字带到屏幕上的TextView。所以我为AsyncTask编写了这段代码,但它不起作用。
class NewPostsAsyncTask extends AsyncTask<Void, Void, Void> {
private String title; // Тут храним значение заголовка сайта
private String pst;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("Новые");
progressDialog.setMessage("Загрузка...");
progressDialog.setIndeterminate(false);
progressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
Document doc = null; // Здесь хранится будет разобранный html документ
try {
doc = Jsoup.connect(URL).get(); // Считываем заголовок страницы
// Using Elements to get the Meta data
Elements post = doc.select("div[class=col-xs-12]");
// Locate the content attribute
pst = post.attr("[style=margin:0.5em 0;line-height:1.785em]");
} catch (IOException e) {
e.printStackTrace(); // Если не получилось считать
}
// Если всё считалось, то вытаскиваем из считанного html документа заголовок
if (doc != null)
title = doc.title();
else
title = "Ошибка";
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
//websitePost.setText(title);
websitePost.setText(pst);
progressDialog.dismiss();
}
}
你能解释一下我应该怎么做,你能告诉我我的错误吗?
P上。 S.对不起,如果我的英语不好。
答案 0 :(得分:0)
IIRC您没有引用适用于您的用例的元素。您应引用post.text()
...
// Using Elements to get the Meta data
Elements post = doc.select("div[class=col-xs-12]");
// Locate the content attribute
pst = post.text();
...
答案 1 :(得分:-1)
为什么不使用this而不是进行所有解析?
'\s\|\&' => q<pipelining is not POSIX>,