jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API。
友情提示
刚开始接触对jsoup了解也不是很多,更多的还是需要自己在使用与实践中体会jsoup的作用。
jsoup官网连接:http://jsoup.org/
根据官网的信息可知jsoup的主要功能有:
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可操作HTML元素、属性、文本;
jsoup是安全的。
废话不多说,看下Jsoup处理url解析html实例。
这里将通过url得到的html的解析放在了TextView文本上面。
一、代码提要
Jsoup处理Url主要是下面几行代码。
String url="http://blog.csdn.net/danfengw?viewmode=contents";
//之后调用doc.toString可获得解析的内容。
Document doc= Jsoup.connect(url).get();
二、示例代码
布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
</LinearLayout>
</ScrollView>
<com.melnykov.fab.FloatingActionButton
android:id="@+id/floatingactionbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom|right"
android:layout_margin="10dp"
>
</com.melnykov.fab.FloatingActionButton>
</FrameLayout>
MainActivity
主要功能:
1、实现Jsoup处理的url内容放置到html上面,注意网路请求需要重新开启一个线程。
2、实现FloatingActionButton的点击事件,回到顶部。
import android.animation.ObjectAnimator;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ScrollView;
import android.widget.TextView;
import com.melnykov.fab.FloatingActionButton;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
public class MainActivity extends ActionBarActivity {
private TextView mTextView;
private FloatingActionButton mFloatingActionBar;
private ScrollView mScrollview;
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
String html=msg.obj.toString();
mTextView.setText(html);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView= (TextView) findViewById(R.id.textview);
mFloatingActionBar= (FloatingActionButton) findViewById(R.id.floatingactionbutton);
mScrollview= (ScrollView) findViewById(R.id.scrollview);
mFloatingActionBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mScrollview.scrollTo(0, 0);
}
});
new Thread(){
@Override
public void run() {
String url="http://blog.csdn.net/danfengw?viewmode=contents";
try {
Document doc= Jsoup.connect(url).get();
Message msg=new Message();
msg.what=1;
msg.obj=doc.toString();
mHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}