这是我的HTML代码的一部分
<div class="entry themeform">
<h3>dr James – opiekun naukowy</h3>
<p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-31" alt="grynia" src="http://www.page.com/picture.jpg" width="200" height="300" /></a></p>
<h3>Kevin – prezes</h3>
<p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-35" alt="prezes" src="http://www.page.com/picture.jpg" width="217" height="300" /></a></p>
<h3>Lucy – wice prezes</h3>
<p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-36" alt="Lucy" src="http://www.page.com/picture.jpg" width="225" height="300" /></a></p>
<h3>Zarząd</h3>
<p><a href="http://www.page.com/picture.jpg"><img class="alignnone wp-image-37" alt="zarzad_KNSE" src="http://www.page.com/picture.jpg" width="489" height="256" /></a></p>
<div class="clear"></div
>
</div><!--/.entry-->
首先,我想从这个div中的标签解析文本。如果你帮我解析这个div中的图像也会很好(我改变了图片网址,因为隐私)。我是jsoup的新手,所以如果你给我写一个代码,只是为了将文本解析为android活动,我将不胜感激。
修改 好的,一开始我正在尝试解析你的(SMR)教程中显示的标题。
以下是代码:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import com.example.uwbnewapptest.R;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class KnseActivity extends Activity {
//TextView title;
String url="http://www.google.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.knse_main);
//title = (TextView) findViewById(R.id.textView1);
}
public void bt(View v){
new Title().execute();
}
private class Title extends AsyncTask<Void, Void, Void> {
String title;
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document document = Jsoup.connect(url).get();
// Get the html document title
title = document.title();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Set title into TextView
TextView txttitle = (TextView) findViewById(R.id.textView1);
txttitle.setText(title);
}
}
}
但是当我运行应用程序并单击按钮时,我有一个错误
编辑2:
06-21 16:18:01.808: E/AndroidRuntime(28063): FATAL EXCEPTION: AsyncTask #2
06-21 16:18:01.808: E/AndroidRuntime(28063): Process: com.example.uwbnewapptest, PID: 28063
06-21 16:18:01.808: E/AndroidRuntime(28063): java.lang.RuntimeException: An error occured while executing doInBackground()
06-21 16:18:01.808: E/AndroidRuntime(28063): at android.os.AsyncTask$3.done(AsyncTask.java:300)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
06-21 16:18:01.808: E/AndroidRuntime(28063): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.lang.Thread.run(Thread.java:841)
06-21 16:18:01.808: E/AndroidRuntime(28063): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup
06-21 16:18:01.808: E/AndroidRuntime(28063): at com.uwbapp.KnseActivity$Title.doInBackground(KnseActivity.java:43)
06-21 16:18:01.808: E/AndroidRuntime(28063): at com.uwbapp.KnseActivity$Title.doInBackground(KnseActivity.java:1)
06-21 16:18:01.808: E/AndroidRuntime(28063): at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-21 16:18:01.808: E/AndroidRuntime(28063): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-21 16:18:01.808: E/AndroidRuntime(28063): ... 4 more
答案 0 :(得分:1)
使用jsoup提取数据有多种方法。检查http://jsoup.org/cookbook/extracting-data/selector-syntax。
在您的情况下,您可以使用
来获取文本和图像来源Document doc = Jsoup.connect(url).get();
for(Element div : doc.select("div")){
System.out.println(div.text());
for(Element img : div.select("img")){
System.out.println(img.attr("src"));
}
}
答案 1 :(得分:0)
这是我的html代码的一部分
<pre style="word-wrap: break-word; white-space: pre-wrap;">90</pre>
我是jsoup的新手,所以如果您为我编写代码以将文本解析为android活动,我将不胜感激。