package com.pan.simplepicture.model; import com.pan.simplepicture.inter.Callback; import com.pan.simplepicture.model.impl.IArticleActModel; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.util.Map; import rx.Observable; import rx.Subscriber; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; /** * Created by sysadminl on 2016/1/18. */ public class ArticleActModel implements IArticleActModel { @Override public void parserLZ13Content(final Map<String, String> params, final Callback<String> mCallback) { Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { try { Document result = Jsoup.connect(params.get("url")).get(); Element postContent = result.getElementsByClass("PostContent").get(0); Elements p = postContent.getElementsByTag("p"); StringBuffer sb = new StringBuffer(); for (Element e : p) { sb.append("<p>").append(e.text()).append("</p>"); } subscriber.onNext(sb.toString()); } catch (IOException e) { e.printStackTrace(); subscriber.onNext(null); } } } ). subscribeOn(Schedulers.io() ). observeOn(AndroidSchedulers.mainThread() ). subscribe(new Action1<String>() { @Override public void call(String string) { if (null == string) { mCallback.onFaild(); } else { mCallback.onSccuss(string); } } }); } }