# RSS-Feeds auslesen mit JAVA speichern und Applet übergeben



## atd061180 (15. Nov 2007)

Hallo,
es geht um folgendes Problem:Ich möchte gerne einen NewsTicker machen, der die RRS-Feeds von verschiedenen Hompages ausliest und das ausgelesene(jeweils die Überschrift reicht) mir an mein JAVA-Applet übergibt.Leider bin ich nun nach unzähligen Veruchen am Ende und hoffe dass mir hier evtl jemand weiterhelfen kann wo der fehler ist.


Quelltext:

```
import java.applet.*;
import java.awt.Graphics;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.lang.*;

public class Laufschriftklein extends Applet implements Runnable
{
String title[] = new String[10];
String description[] = new String[10];
String link[] = new String[10];
int anzahl=0;

int x, y, breite;
Thread my_thread;
String text;
Font f = new Font("System", Font.BOLD, 18);
String s;
 public void auslesen()  throws IOException
 {

  text="";
  try
  {
   URL url = new URL( "http://www.chip.de/rss/rss_topnews.xml" );
   Reader is = new InputStreamReader( url.openStream() );
   BufferedReader in = new BufferedReader( is );
   String s;
   for (int i=0; ( s = in.readLine() ) != null && i<200;i++)
     text=s;

   in.close();
  }
  catch ( MalformedURLException e )
  {
   System.out.println( "MalformedURLException: " + e );
  }
  catch ( IOException e )
  {
   System.out.println( "IOException: " + e );
  }

  int start=0,end=0;
  for(int i=0;i<text.length();i++)
  {
      for(;i<text.length();i++)
      {
	 if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+16).compareTo("<title><![CDATA[")==0)
	 {
	    i+=16;
	    start=i;
	 }
	 if(text.substring(i,i+1).compareTo("]")==0 && text.substring(i,i+11).compareTo("]]></title>")==0)
	 {
	    end=i;
	    i+=11;
	    title[anzahl]=text.substring(start,end);
	    System.out.println("title:" + text.substring(start,end));
	    break;
	 }
      }
      for(;i<text.length();i++)
      {
	 if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+22).compareTo("<description><![CDATA[")==0)
	 {
	    i+=22;
	    start=i;
	 }
	 if(text.substring(i,i+1).compareTo("]")==0 && text.substring(i,i+17).compareTo("]]></description>")==0)
	 {
	    end=i;
	    i+=17;
	    description[anzahl]=text.substring(start,end);
	    System.out.println("description:" + text.substring(start,end));
	    break;
	 }
      }
      for(;i<text.length();i++)
      {
	 if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+6).compareTo("<link>")==0)
	 {
	    i+=6;
	    start=i;
	 }
	 if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+7).compareTo("</link>")==0)
	 {
	    end=i;
	    i+=7;
	    link[anzahl]=text.substring(start,end);
	    System.out.println("link:" + text.substring(start,end));
	    System.out.println("");
	    anzahl+=1;
	    break;
	 }
      }
    }

 }



 public void init ( )
 {


   try
   {
      auslesen();
      //text="laeuft";

   }
   catch(Exception e)
   {
    text=("Fehler:" + e);
   }
	y = size().height / 2;
	breite = size().width;
	if (x > breite) x = breite;

 }

 public void start( )
 {
	my_thread = new Thread(this);
	my_thread.start();
 }

 public void run()
 {
   while (true)
   {
       repaint();
       x -= 10;
       if (x < -1000) x = breite ;
	 try
	 {		     // Thread erfordert Ausnahme-Handler (try-catch-Klausel)
	      Thread.sleep(200);
	 }
	 catch (InterruptedException e)
	 {}
   }
 }

 public void paint(Graphics g)
 {
      g.setFont(f);
      g.drawString(text, x, y);
 }
}
```


----------



## Gast (24. Apr 2008)

Hallo, suche etwas ähnliches. komme aber auch nicht weiter


----------



## Lolek (23. Mai 2008)

Gast hat gesagt.:
			
		

> Hallo, suche etwas ähnliches. komme aber auch nicht weiter



warum benutzt ihr keine rss api z.B. rome ?


----------

