Получить изображение из описания RSS тег - PullRequest
0 голосов
/ 30 августа 2011

Я получаю RSS-канал в своем приложении. Я хотел бы получить изображение из тега описания.

Итак, выбрав часть

href="http://1.bp.blogspot.com/-cK4XpGZFqrw/TlzZVDN29EI/AAAAAAAAIP4/HIPTiLxMHB8/s1600/empoou.jpg"

от

<description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b4nArh9wvGYEh4cdSiHD3-Kk4CM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b4nArh9wvGYEh4cdSiHD3-Kk4CM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;&lt;ahref="http://feedads.g.doubleclick.net/~a/b4nArh9wvGYEh4cdSiHD3-k4CM/1/da"&gt;&lt;imgsrc="http://feedads.g.doubleclick.net/~a/b4nArh9wvGYEh4cdSiHD3-Kk4CM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/-cK4XpGZFqrw/TlzZVDN29EI/AAAAAAAAIP4/HIPTiLxMHB8/s1600/empoou.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 180px;" .............

Я использую синтаксический анализатор для загрузки RSS. Любая помощь, чтобы получить изображение? Спасибо

Ответы [ 2 ]

1 голос
/ 08 декабря 2015

используйте эту jsoup lib для получения значения атрибута HTML-элемента

, сначала необходимо выполнить синтаксический анализ XML,

String description = rssFeed.getDescription("description");
Document doc = Jsoup.parse(html);
Elements img = doc.select("img");
String url = img.attr("src");

doc.select () возвращает несколько объектов Element, если имеется более одного элемента img, если вы хотите получить элемент img более 1-го индекса, тогда используйте следующий код:

String description = rssFeed.getDescription("description");
Document doc = Jsoup.parse(html);
Elements img = doc.select("img");
String url = getImgSrc(imgs);

private String getImgSrc(Elements imgs) {
    for (int j = 0; j < imgs.size(); j++) {
        Element img = imgs.get(j);
        if (img.hasAttr("src")) {
            return img.attr("src");
        }
    }

    return null;
}
1 голос
/ 30 августа 2011

Затем, когда у вас есть URL-адрес изображения, просто посмотрите этот пример:

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class Example1 extends Activity{
    EditText inputUrl;
    OnClickListener getImageBtnOnClick = new OnClickListener() {
        public void onClick(View view) {
            Context context = view.getContext();
            Editable ed = inputUrl.getText();
            Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
            ImageView imgView = new ImageView(context);
            imgView = (ImageView)findViewById(R.id.image1);
            imgView.setImageDrawable(image);
        }
    };

    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        inputUrl = ((EditText)findViewById(R.id.imageUrl));
        inputUrl.setSingleLine();
        inputUrl.setTextSize(11);
        Button getImageButton = (Button)findViewById(R.id.getImageButton);
        getImageButton.setOnClickListener(getImageBtnOnClick);

    }   

    private Drawable ImageOperations(Context ctx, String url, String saveFilename) {
        try {
            InputStream is = (InputStream) this.fetch(url);
            Drawable d = Drawable.createFromStream(is, "src");
            return d;
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    public Object fetch(String address) throws MalformedURLException,IOException {
        URL url = new URL(address);
        Object content = url.getContent();
        return content;
    }
}

и полный учебник там: http://asantoso.wordpress.com/2008/03/07/download-and-view-image-from-the-web/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...