Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析JSoupURL_Java_Android_Html_Css_Jsoup - Fatal编程技术网

Java 解析JSoupURL

Java 解析JSoupURL,java,android,html,css,jsoup,Java,Android,Html,Css,Jsoup,我可以根据文档解析hrefurl: Document doc = Jsoup.connect("http://jsoup.org").get(); Element link = doc.select("a").first(); String relHref = link.attr("href"); // == "/" String absHref = link.attr("abs:href"); // "http://jsoup.org/" 但我尝试在此网页中从css中提取链接url: 我需

我可以根据文档解析
href
url:

Document doc = Jsoup.connect("http://jsoup.org").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"
但我尝试在此网页中从css中提取链接url:

我需要采取的形象旗帜的链接。id是:
id=“content\u heading”
但是图像是由css加载的

<div id="content_heading" style="background: url(http://images.multiplayer.it/thumbs/images/2014/06/10/assassins_creed_unity_jpg_1600x0_upscale_q85.jpg) center center; background-size: cover;">
其中
urlnew
我将其声明为
public-URL-urlnew
postbimat
为位图

第二部分:

private class ContentViewImgUrl extends AsyncTask<Void,Void,Void> {

        final Pattern pattern = Pattern.compile("url\\((.+?)\\)");

        @Override
        protected void onPreExecute() {}

        @Override
        protected String doInBackground(Void... params) {

            try {
                final Document doc = Jsoup.connect(URL).timeout(30000).get();

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        String url = doc.getElementById("content_heading").attr("style").toString();
                        Matcher matcher = pattern.matcher(url);
                        if(matcher.find()){

                        System.out.println(matcher.group(1));

                        indirizzostringaimg = matcher.group(1);
                        imgloader = ImageLoader.getInstance();
                        imgloader.init(ImageLoaderConfiguration.createDefault(getActivity()));
                        System.out.println(urlnew);
                       } else {
                      Toast.makeText(getActivity(), "Pic url error",                  Toast.LENGTH_SHORT).show();
                       }
                    }
                });

            } catch (Exception e) {
                Log.e("ESEMPIO", "ERROR");
            }
            return null; // MODIFIED HERE
        }

        @Override
        protected void onPostExecute(Void result) {   

           if(matcher.find()){
            DisplayImageOptions opt = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.refresh)
            .showImageForEmptyUri(R.drawable.refresh)
            .cacheInMemory()
            .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
            .cacheOnDisc()
           .build();

            imgloader.displayImage(indirizzostringaimg, postimage_main, opt);
         } else {
            Toast.makeText(getActivity(), "Pic url error",                  Toast.LENGTH_SHORT).show();
         }
        }
    }
私有类ContentViewImgUrl扩展异步任务{
final Pattern=Pattern.compile(“url\\(.+?)\\)”;
@凌驾
受保护的void onPreExecute(){}
@凌驾
受保护字符串doInBackground(无效…参数){
试一试{
最终文档doc=Jsoup.connect(URL).timeout(30000.get();
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
字符串url=doc.getElementById(“内容标题”).attr(“样式”).toString();
Matcher Matcher=pattern.Matcher(url);
if(matcher.find()){
系统输出println(匹配器组(1));
indirizzostringaimg=matcher.group(1);
imgloader=ImageLoader.getInstance();
init(ImageLoaderConfiguration.createDefault(getActivity());
System.out.println(urlnew);
}否则{
Toast.makeText(getActivity(),“picURL错误”,Toast.LENGTH_SHORT.show();
}
}
});
}捕获(例外e){
Log.e(“ESEMPIO”,“ERROR”);
}
返回null;//此处已修改
}
@凌驾
受保护的void onPostExecute(void结果){
if(matcher.find()){
DisplayImageOptions opt=新建DisplayImageOptions.Builder()
.showtubimage(R.drawable.refresh)
.showImageForEmptyUri(R.drawable.refresh)
.cacheInMemory()
.imageScaleType(imageScaleType.IN\u示例\u INT)
.cacheOnDisc()
.build();
imgloader.displayImage(indirizzostringaimg,postimage_main,opt);
}否则{
Toast.makeText(getActivity(),“picURL错误”,Toast.LENGTH_SHORT.show();
}
}
}

这里是一个完整的工作示例。得到你感兴趣的部分

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class Main {

    public static void main(String[] args) {
        String html = "<div id=\"content_heading\" style=\"background: url(http://images.multiplayer.it/thumbs/images/2014/06/10/assassins_creed_unity_jpg_1600x0_upscale_q85.jpg) center center; background-size: cover;\"></div>";
        final Pattern pattern = Pattern.compile("url\\((.+?)\\)");

        try {
            Document doc = Jsoup.parse(html);
            String url = doc.getElementById("content_heading").attr("style").toString();

            Matcher matcher = pattern.matcher(url);
            matcher.find();
            System.out.println(matcher.group(1));
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
公共班机{
公共静态void main(字符串[]args){
字符串html=“”;
final Pattern=Pattern.compile(“url\\(.+?)\\)”;
试一试{
Document doc=Jsoup.parse(html);
字符串url=doc.getElementById(“内容标题”).attr(“样式”).toString();
Matcher Matcher=pattern.Matcher(url);
matcher.find();
系统输出println(匹配器组(1));
}捕获(例外e){
e、 printStackTrace();
}
}
}
更新

private class ContentViewImgUrl extends AsyncTask<String,String,String> {

    final Pattern pattern = Pattern.compile("url\\((.+?)\\)");

    @Override
    protected void onPreExecute() {}

    @Override
    protected String doInBackground(String... params) {

        try {
            final Document doc = Jsoup.connect(URL).timeout(30000).get();

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    String url = doc.getElementById("content_heading").attr("style").toString();
                    Matcher matcher = pattern.matcher(url);
                    matcher.find();
                    System.out.println(matcher.group(1));
                }
            });
        } catch (Exception e) {
            Log.e("ESEMPIO", "ERROR");
        }
        return null; // MODIFIED HERE
    }

    @Override
    protected void onPostExecute(String result) {   
        Toast.makeText(SingleActivity.this, "url "+ imgUrlPost, Toast.LENGTH_SHORT).show();
    }
}
私有类ContentViewImgUrl扩展异步任务{
final Pattern=Pattern.compile(“url\\(.+?)\\)”;
@凌驾
受保护的void onPreExecute(){}
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
最终文档doc=Jsoup.connect(URL).timeout(30000.get();
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
字符串url=doc.getElementById(“内容标题”).attr(“样式”).toString();
Matcher Matcher=pattern.Matcher(url);
matcher.find();
系统输出println(匹配器组(1));
}
});
}捕获(例外e){
Log.e(“ESEMPIO”,“ERROR”);
}
返回null;//此处已修改
}
@凌驾
受保护的void onPostExecute(字符串结果){
Toast.makeText(SingleActivity.this,“url”+imgUrlPost,Toast.LENGTH_SHORT.show();
}
}

您无法在后台线程中创建Toast通知很抱歉,我错了。。不管怎样,现在我编辑问题,它返回“null”。有可能提取出那个链接吗?让我们。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class Main {

    public static void main(String[] args) {
        String html = "<div id=\"content_heading\" style=\"background: url(http://images.multiplayer.it/thumbs/images/2014/06/10/assassins_creed_unity_jpg_1600x0_upscale_q85.jpg) center center; background-size: cover;\"></div>";
        final Pattern pattern = Pattern.compile("url\\((.+?)\\)");

        try {
            Document doc = Jsoup.parse(html);
            String url = doc.getElementById("content_heading").attr("style").toString();

            Matcher matcher = pattern.matcher(url);
            matcher.find();
            System.out.println(matcher.group(1));
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}
private class ContentViewImgUrl extends AsyncTask<String,String,String> {

    final Pattern pattern = Pattern.compile("url\\((.+?)\\)");

    @Override
    protected void onPreExecute() {}

    @Override
    protected String doInBackground(String... params) {

        try {
            final Document doc = Jsoup.connect(URL).timeout(30000).get();

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    String url = doc.getElementById("content_heading").attr("style").toString();
                    Matcher matcher = pattern.matcher(url);
                    matcher.find();
                    System.out.println(matcher.group(1));
                }
            });
        } catch (Exception e) {
            Log.e("ESEMPIO", "ERROR");
        }
        return null; // MODIFIED HERE
    }

    @Override
    protected void onPostExecute(String result) {   
        Toast.makeText(SingleActivity.this, "url "+ imgUrlPost, Toast.LENGTH_SHORT).show();
    }
}