2013-04-15 3 views
0

Я хочу прочитать изображение с этого URL-адреса.Прочитать изображение url из xml в android

<?xml version="1.0" encoding="UTF-8"?> 
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> 

    <channel> 

    <title>podCast411</title> 
    <description>The 411 on podCasts, podCasters and podcasting</description> 
    <link>http://www.podcast411.com</link> 
    .. 
    .. 
    <itunes:explicit>No</itunes:explicit> 

    <itunes:image href="http://www.podcast411.com/img/411_itunes.jpg"/> 
    .. 
    </channel> 
</rss> 

Я могу прочитать название, описание из этой ленты, используя следующий код.

Node results = doc.getDocumentElement(); 
      Element docElement = doc.getDocumentElement(); 
      NodeList childNodes = docElement.getChildNodes(); 
      NodeList itemLinks = docElement.getElementsByTagName("item"); 
      Log.d("TAG", 
        "Response:" + results.getLastChild() + " " 
          + childNodes.getLength() + " " + itemLinks.getLength()); 


      for (int i = 0; i < itemLinks.getLength(); i++) { 
       Element el = (Element) itemLinks.item(i); 


       NodeList itemTitle = el.getElementsByTagName("title"); 
       Element itemFirst = (Element) itemTitle.item(0); 
       String nTitle = itemFirst.getFirstChild().getNodeValue(); 


       NodeList itemdesc = el.getElementsByTagName("description"); 
       Element itemFirstdesc = (Element) itemdesc.item(0); 
       String nDesc = stipHtml(itemFirstdesc.getFirstChild().getNodeValue()); 

} 
public String stipHtml(String html) { 
      return Html.fromHtml(html).toString(); 
     } 

Когда я пытаюсь сделать тот же код для чтения URL-адреса, он не работает. нижеприведенный код предназначен для чтения imade URL:

NodeList itemImage = el.getElementsByTagName("image"); 
       String imageUrl = null; 
       for(i=0;i< itemImage.getLength();i++) { 
        Log.d("TAG", "Length of item is "+ itemImage.getLength()); 
        Element itemFirstImage = (Element) itemImage.item(i); 
        NodeList url = itemFirstImage.getElementsByTagName("url"); 
        Element link = (Element) url.item(i); 
        imageUrl = stipHtml(link.getFirstChild().getNodeValue()); 
       } 

Что не так в моем коде?

Мой лог-код: он отображается для всего элемента.

D/TAG  (1901): List Data is called 
D/TAG  (1901): Temp is created....... 
D/TAG  (1901): RSS Data: title : Twelve-die-in-Himachal-road-accident description:Twelve people, all belonging to a village in Himachal Pradesh's Chamba district, were killed when a private vehicle skidded off the road and fell into a 700-metre-deep gorge on Sunday night, police officials said. http://feeds.hindustantimes.com/~r/HT-IndiaSectionPage-Topstories/~3/fUUMziwJedI/story01.htm null 
D/TAG  (1901): List Data is called 
D/TAG  (1901): Temp is created....... 
D/TAG  (1901): RSS Data: title : Twelve-die-in-Himachal-road-accident description:Twelve people, all belonging to a village in Himachal Pradesh's Chamba district, were killed when a private vehicle skidded off the road and fell into a 700-metre-deep gorge on Sunday night, police officials said. http://feeds.hindustantimes.com/~r/HT-IndiaSectionPage-Topstories/~3/fUUMziwJedI/story01.htm null 
D/TAG  (1901): List Data is called 
D/TAG  (1901): Temp is created....... 
D/TAG  (1901): RSS Data: title : Twelve-die-in-Himachal-road-accident description:Twelve people, all belonging to a village in Himachal Pradesh's Chamba district, were killed when a private vehicle skidded off the road and fell into a 700-metre-deep gorge on Sunday night, police officials said. http://feeds.hindustantimes.com/~r/HT-IndiaSectionPage-Topstories/~3/fUUMziwJedI/story01.htm null 

В конце приложение является сила закрыто, показывая следующий LogCat:

E/dalvikvm(1901): Out of memory: Heap Size=24263KB, Allocated=23071KB, Bitmap Size=375KB 
D/AndroidRuntime(1901): Shutting down VM 
W/dalvikvm(1901): threadid=1: thread exiting with uncaught exception (group=0x400259f8) 
I/dalvikvm-heap(1901): Clamp target GC heap from 24.311MB to 24.000MB 
D/dalvikvm(1901): GC_FOR_MALLOC freed 18016 objects/939208 bytes in 141ms 
E/AndroidRuntime(1901): FATAL EXCEPTION: main 
E/AndroidRuntime(1901): java.lang.OutOfMemoryError 
E/AndroidRuntime(1901): at android.text.SpannableStringBuilder.resizeFor(SpannableStringBuilder.java:137) 
E/AndroidRuntime(1901): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:322) 
E/AndroidRuntime(1901): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:275) 
E/AndroidRuntime(1901): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:438) 
E/AndroidRuntime(1901): at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:259) 
E/AndroidRuntime(1901): at android.text.HtmlToSpannedConverter.characters(Html.java:774) 
E/AndroidRuntime(1901): at org.ccil.cowan.tagsoup.Parser.pcdata(Parser.java:994) 
E/AndroidRuntime(1901): at org.ccil.cowan.tagsoup.HTMLScanner.save(HTMLScanner.java:614) 
E/AndroidRuntime(1901): at org.ccil.cowan.tagsoup.HTMLScanner.scan(HTMLScanner.java:557) 
E/AndroidRuntime(1901): at org.ccil.cowan.tagsoup.Parser.parse(Parser.java:449) 
E/AndroidRuntime(1901): at android.text.HtmlToSpannedConverter.convert(Html.java:411) 
E/AndroidRuntime(1901): at android.text.Html.fromHtml(Html.java:139) 
E/AndroidRuntime(1901): at android.text.Html.fromHtml(Html.java:102) 
E/AndroidRuntime(1901): at com.mistral.droidcast.SubscriptionActivity$RequestTask.stipHtml(SubscriptionActivity.java:134) 
E/AndroidRuntime(1901): at com.mistral.droidcast.SubscriptionActivity$RequestTask.onPostExecute(SubscriptionActivity.java:84) 
E/AndroidRuntime(1901): at com.mistral.droidcast.SubscriptionActivity$RequestTask.onPostExecute(SubscriptionActivity.java:1) 
E/AndroidRuntime(1901): at android.os.AsyncTask.finish(AsyncTask.java:417) 
E/AndroidRuntime(1901): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
E/AndroidRuntime(1901): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
E/AndroidRuntime(1901): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(1901): at android.os.Looper.loop(Looper.java:144) 
E/AndroidRuntime(1901): at android.app.ActivityThread.main(ActivityThread.java:4937) 
E/AndroidRuntime(1901): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(1901): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(1901): at 

    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    E/AndroidRuntime(1901): at 

    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    E/AndroidRuntime(1901): at dalvik.system.NativeStart.main(Native Method) 
    W/ActivityManager( 103): Force finishing activity com.mistral.droidcast/.SubscriptionActivity 

пожалуйста, дайте мне какой-либо другой способ ее достижения.

+0

Опубликуйте Logcat также ... –

+0

использование ITunes: изображение и получить атрибут методу – Senthil

+0

@vsk я пробовал один. Но пока я читаю xml, нет элемента как itunes: image. Я использовал эту ссылку для разбора: http://feeds.hindustantimes.com/HT-IndiaSectionPage-Topstories – Dhasneem

ответ

0
try { 
      InputStream myxml = this.getApplicationContext().getAssets().open("production.xml"); 
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); 
      Document doc = db.parse(myxml); 
      doc.getDocumentElement().normalize(); 
      NodeList nodeList = doc.getElementsByTagName("channel"); 
      name = new TextView[nodeList.getLength()]; 

      for (int i = 0; i<nodeList.getLength(); i++) 
      { 
       Node node = nodeList.item(i);    
       Element fstElmnt = (Element) node; 
       NodeList toList = fstElmnt.getElementsByTagName("itunes:image"); 
       Element nameElement = (Element) toList.item(0); 
       toList = nameElement.getChildNodes();  
       String link = ((Node) toList.item(0)).getNodeValue(); 
       // link would be containing url of ur image   
      } 


      } catch (Exception e) { 
        System.out.println("XML Pasing Excpetion = " + e); 
      } 
Смежные вопросы