Turkcell | Geleceği Yazanlar

Soru & Cevap

RSS Reader Sorunu ACİL!!

02.01.2014 - 01:33

Merhabalar, http://servis.chip.com.tr/chiponline.xml bu rss'den [code]<enclosure url="http://media.chip.com.tr/images/thumb/128/2013123116565320346.jpg" length="6163" type="image/jpg"/>[/code]

kısmındaki jpg linkini androidde nasıl parse edebilirim? Bazı yollar denedim ama çalıştıramadım. 

[code]

public ArrayList<String> getResimFromXml(String strng)  {

    ArrayList<String> list=new ArrayList<String>();
    
    try {

        URL url=new URL(strng);
        DocumentBuilderFactory dFactory=DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder=dFactory.newDocumentBuilder();

        Document document=dBuilder.parse(new InputSource(url.openStream()));
        document.getDocumentElement().normalize();
        
        NodeList nodeListCountry=document.getElementsByTagName("item");
        for (int i = 0; i < nodeListCountry.getLength(); i++) {
            Node node=nodeListCountry.item(i);
            Element elementMain=(Element) node;

             NodeList nodeListicon = elementMain.getElementsByTagName("enclosure");
             Element elementicon = (Element) nodeListicon.item(0);
             String resimurl = elementicon.getAttribute("url");
             
             list.add(elementicon.getChildNodes().item(0).getNodeValue());

            
        }
        
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    
    return list;
}

[/code]

 

şu şekilde bir şey deniyim dedim, ama olmadı.

 

RSS'den nasıl resim yolunu çekebilriz?

7351 Görüntülenme

8 Cevap

Furkan KURT
04.01.2014 - 17:12

Mehmet Abi, sorudaki kodda mantiksiz gelen şey, resimurl isminde string atadim. Onun altinda da listview'e gonderen kodda elementacion kismini gonderdim. Bu stringi gonderemiyorum. Bir de resimurl den gelen url'yi bitmap olarak resim1e nasil atayacağim?

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Furkan KURT
04.01.2014 - 16:15

Aynen, nasıl yapabilirim logcattan alip arrayliste aktarmayi?

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mehmet Altıparmak
04.01.2014 - 15:16

~Merhaba Furkan,

Soruda paylaştığın kod bende sorunsuz çalıştı, sen ne gibi bir problem yaşıyorsun? internet permission'ı ekledin değil mi manifest dosyasına?

Hem Kerem'in paylaştığı hem de senin kodunu kullanan örneği linkten indirebilirsin.

https://dl.dropboxusercontent.com/u/218691470/SampleRssReader.rar

Resim URL'lerini çektikten sonra LogCat'e yazzdırıyor, url'leri görmek için logcat'e bakabilirsin. Sonrasında istediğin gibi bir ArrayList e ekler ya da Adapter kullanarak ListView'da gösterebilirsin. ListView'da göstermekle ilgili bir problemin bulunuyor mu?

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mehmet Altıparmak
04.01.2014 - 15:19
Bu arada 3.0 sonrasında UI thread içerisinde network connection açamıyorsun, belki de bu noktada bir sorun yaşadın, örneği incelersen URL açma işlemi bir AsyncTask içerisinde yapılıyor.
Furkan KURT
04.01.2014 - 13:36

[code]

public ArrayList<String> getDateFromXml(String strng)  {

    ArrayList<String> list=new ArrayList<String>();
    
    try {

        URL url=new URL(strng);
        DocumentBuilderFactory dFactory=DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder=dFactory.newDocumentBuilder();

        Document document=dBuilder.parse(new InputSource(url.openStream()));
        document.getDocumentElement().normalize();
        
        NodeList nodeListCountry=document.getElementsByTagName("item");
        for (int i = 0; i < nodeListCountry.getLength(); i++) {
            Node node=nodeListCountry.item(i);
            Element elementMain=(Element) node;

            NodeList nodeListText=elementMain.getElementsByTagName("title");
            Element elementText=(Element) nodeListText.item(0);
            
            list.add(elementText.getChildNodes().item(0).getNodeValue());

            
        }
        
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    
    return list;
}

[/code]

 

bu da title'nin çekim örneğim

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Furkan KURT
04.01.2014 - 13:09

Merhaba Mehmet Abi, verdiğin github'daki java dosyasındaki kodu kendiminkiyle uyuşturamadım. Nasıl kullanacağımı tam olarak anlamadım. RSS leri bir array list yapıp listviewe'e aktarıyorum. Kodu versem nasıl yapıldığını gösterirmisin?

[code]public ArrayList<String> getResimFromXml(String strng)  {

    ArrayList<String> list=new ArrayList<String>();
    
    try {

        URL url=new URL(strng);
        DocumentBuilderFactory dFactory=DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder=dFactory.newDocumentBuilder();

        Document document=dBuilder.parse(new InputSource(url.openStream()));
        document.getDocumentElement().normalize();
        
        NodeList nodeListCountry=document.getElementsByTagName("item");
        for (int i = 0; i < nodeListCountry.getLength(); i++) {
            Node node=nodeListCountry.item(i);
            Element elementMain=(Element) node;

             NodeList nodeListicon = elementMain.getElementsByTagName("enclosure");
             Element elementicon = (Element) nodeListicon.item(0);
             
             list.add(elementicon.getChildNodes().item(0).getNodeValue());

            
        }
        
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    
    return list;
}[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mehmet Altıparmak
03.01.2014 - 18:02

Merhaba Furkan,

Kerem'in paylaştığı kütüphane istediğin işleve sahip aslında, koda baktığında da görebilirsin,

https://github.com/ahorn/android-rss/blob/master/src/main/java/org/mcsoxford/rss/RSSHandler.java 

Setter for RSS <enclosure> elements inside an <item> element.

O kütüphaneyi kullanmayı deneyip takıldığın yerde tekrar sorabilirsin, ayrıca kütüphane açık kaynak kodlu olduğu için ufak tefek özel gereksinimlerini karşılayacak şekilde kodunu da değiştirip kullanabilirsin. 

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Furkan KURT
02.01.2014 - 16:20

Merhaba İzzet, verdiginiz ornegi daha onceden incelemistim. Malesef istedigim kisim bu ornekte yok.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

İzzet Kerem Küsmezer
02.01.2014 - 09:39

https://github.com/ahorn/android-rss adresindeki projeyi kullanabilirsin.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.