Gå til innhold

Metode som returner RSS Feed som tekst


Anbefalte innlegg

Eg prøver å få til å returne ein RSS Feed som rein tekst

 

String getFeed() {
 URL url = new URL('http://rss.slashdot.org/Slashdot/slashdot');
 BufferedReader feed = new BufferedReader(new InputStreamReader(url.openStream()));

  return feed.toString():
  }

 

Men dette fungerer ikkje og eg får bare tilbake det "java.io.BufferedReader@987c7d"

Tips? :)

Lenke til kommentar
Videoannonse
Annonse

Kjapp googling fant denne koden:

 

import java.io.*;
import java.net.*;
import java.util.*;
import de.nava.informa.core.*;
import de.nava.informa.impl.basic.ChannelBuilder;
import de.nava.informa.parsers.FeedParser;

public class Rss
{
public static void main( String[] args )
{
try
{
Scanner input = new Scanner(System.in);
System.out.print("Please insert your RSS Feed: ");
String feed = input.nextLine();

URL url = new URL(feed);
ChannelIF channel = FeedParser.parse(new ChannelBuilder(), url );
System.out.println("Channel: " + channel.getTitle() );
System.out.println("Description: " + channel.getDescription() );
System.out.println("PubDate: " + channel.getPubDate() );

Collection items = channel.getItems();
for(Iterator i=items.iterator(); i.hasNext();)
{
ItemIF item = (ItemIF)i.next();
System.out.println("---");
System.out.println("Article Title: " + item.getTitle());
System.out.println("Description: " + item.getDescription());
System.out.println("Categories: " + item.getCategories());
System.out.println("Date: " + item.getDate());
System.out.println("Link: " + item.getLink());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

Du trenger Informa-bibliotek for denne koden:

http://informa.sourceforge.net/

Lenke til kommentar

Ikkje akkurat det eg er ute etter da meininga er at eg skal ha heile RSS feeden, parsinga er allereie gjort :)

Problemet mitt ligger i å få heile innhaldet som er XML, HTML eller rein tekst gjort som kan sendes videre som rein tekst.

 

Noko ala dette, men meir elegant er det eg vil finne ut av:

Eg velger å skjule koden då det er verkeleg fælt og trist å sjå på :p

Klikk for å se/fjerne innholdet nedenfor
String getFeed() {
 URL url = new URL('http://rss.slashdot.org/Slashdot/slashdot');
 BufferedReader read = new BufferedReader(new InputStreamReader(url.openStream()));
 String line = read.readLine();
 int i=0;
 while(i < 262);
 {
 	line += read.readLine();
 	i++;
 }
  return line;
  }

Og ja det fungerer :tease:

Lenke til kommentar

Den første kodesnutten var jo en god begynnelse

 

er dette bedre ?

 


String getFeed() {
 URL url = new URL('http://rss.slashdot.org/Slashdot/slashdot');

 BufferedReader read = new BufferedReader(new InputStreamReader    (url.openStream()));

while(read.ready());
{
    line += read.readLine();
}
 return line;
}

 

Det du fikk av toString metoden var minne lokasjone til BufferdReader instansen read. implementasjonen av toString i klassen Object har denne og da tyder det på at BufferedReader ikke har overridet denne.

Endret av thpost
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...