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?

45 Görüntülenme

8 Cevap

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

Profile picture for user fkurt97
fkurt97
04.01.2014 - 05: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?
Profile picture for user fkurt97
fkurt97
04.01.2014 - 04:15
Aynen, nasıl yapabilirim logcattan alip arrayliste aktarmayi?
picture-472-1375079047.jpg
mehmet.altiparmak
04.01.2014 - 03: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?

Mehmet Altıparmak
04.01.2014 - 03: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.
Profile picture for user fkurt97
fkurt97
04.01.2014 - 01: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

Profile picture for user fkurt97
fkurt97
04.01.2014 - 01: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]

picture-472-1375079047.jpg
mehmet.altiparmak
03.01.2014 - 06: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. 

Profile picture for user fkurt97
fkurt97
02.01.2014 - 04:20
Merhaba İzzet, verdiginiz ornegi daha onceden incelemistim. Malesef istedigim kisim bu ornekte yok.
picture-483-1374012946.jpg
kerem.kusmezer
02.01.2014 - 09:39

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