繁体   English   中英

如何知道在Jsoup中Element类是空还是null

[英]how to know if the Element class is empty or null in Jsoup

我正在尝试使用 URL中的Jsoup库收集文章列表的图像。

当文章没有嵌入图像时,我使用标准图片。 这是我做的:

for(Element img : document.select(".rullo .rullo-item .lazy>a img[src]")) {
    String imageMainUrl = img.attr("src");
    if(img.attr("src") == null || img.attr("src").equals("") || 
           img.attr("src").isEmpty()){
        images.add(bmp);
    } else {
        String newString = imageMainUrl.replace("data:image/gif;base64,", "");
        byte[] decodedString = Base64.decode(imageMainUrl, Base64.DEFAULT);
        Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);                  
        images.add(bitmap);
    }                   
}

但问题是它永远不会进入if部分; 如何知道元素是空还是空? 谢谢!

这个怎么样:

for(Element img : doc.select(".rullo .rullo-item .lazy>a img[src]")) {
        String imageMainUrl = img.attr("data-src");
        URL imageurl = null;
        try {
            imageurl = new URL(imageMainUrl);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        final long imageSize = imageurl.openConnection().getContentLength();

        if(img.attr("src") == null || img.attr("src").equals("") ||
                img.attr("src").isEmpty() || imageSize > 0){
            images.add(bmp);
        } else {
            byte[] decodedString = Base64.decode(imageMainUrl, Base64.DEFAULT);
            Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
            images.add(bitmap);
        }
    }

我注意到实际的图像URL是在data-src下而不是src。

我解决了我的问题!
这是代码:

for(Element picture : document.select(".rullo .rullo-item picture")) {
    Elements imageElement = picture.getElementsByClass("attachment-rullo");
    String imageUrl = imageElement.attr("data-src");
    if(imageUrl == null || imageUrl.equals("")){
        images.add(bmp);
    } else {
        try{
            InputStream input = new java.net.URL(imageUrl).openStream();
            Bitmap bitmap = BitmapFactory.decodeStream(input);
            images.add(bitmap);
        } catch (MalformedURLException e) {
            e.printStackTrace();
            images.add(bmp);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            images.add(bmp);
        }
    }
}

我能够通过选择图像的父级来解决我的问题:如果父级没有内容,则文章没有嵌入图片,否则嵌入了图片。

试着打印出imageMainUrl使用Log.i("value",imageMainUrl); 你会像那样遍历问题。 并且还可以从您获取图像的位置发布文章的html DOM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM