Τι είναι το rss και ποια η δομή του.

Συζητήσεις για XML, XSLT, RSS και παράγωγα της γενικότερης XML

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από cordis » 04 Φεβ 2005 13:27

Το RSS είναι απλά ένα predefined Document Type Definition (DTD) [1] [2] της γενικότερης περιγραφικής γλώσσας XML όπου περιγράφει έναν στάνταρτ τρόπο για την ανταλλαγή και προώθηση νέων, άρθρων, κειμένων ανάμεσα σε διαφορετικές ιστοσελίδες και ειδικά προγράμματα ανάγνωσης νέων.

Έτσι, έχουμε έναν δεδομένο τρόπο να ανταλλάζουμε άρθρα, κείμενα, να αλλάζουμε τοποθεσία σε άρθρα, κ.τ.λ. χωρίς να είμαστε υποχρεωμένοι να ενημερώνουμε όλους τους συνεργάτες μας, μιας και αυτό το αναλαμβάνει να το κάνει αυτόματα το RSS αρχείο για εμάς.

Η πλήρη περιγραφή του υπάρχει στην σελίδα:
http://my.netscape.com/publish/formats/rss-0.91.dtd

στα ELEMENT βλέπετε όλα τα πεδία που μπορείτε να χρησιμοποιήσετε στην περιγραφή του RSS σας.
<!ELEMENT channel (title | description | link | language | item+ | rating? | image? | textinput? | copyright? | pubDate? | lastBuildDate? | docs? | managingEditor? | webMaster? | skipHours? | skipDays?)*>
Με + είναι τα πεδία που έχουν υποπεδία και με ? όσα δεν είναι απαραίτητα.
Με * πριν το > χαρακτηρίζονται αυτά που μπορούν να επαναλαμβάνονται μέσα στο channel ως details του.

Ξεκινώντας να γράφουμε το δικό μας RSS θα δούμε τα επιμέρους κομμάτια που χρειάζεται να περιγράψουμε για να έχουμε την δυνατότητα να μοιραζόμαστε τα νέα της σελίδας μας με άλλους.

Ξεκινάμε λοιπών στέλνοντας στον HTTP Header τον τύπο του κειμένου μας το οποίο είναι text/xml.
Στην PHP π.χ. θα γράψουμε:

Κώδικας: Επιλογή όλων

header&#40;"Content-type&#58; text/xml"&#41;;
Ο XML Header είναι το πρώτο πράγμα που πρέπει να στείλουμε, και το μόνο που ίσως χρειαστεί να αλλάξουμε είναι το encoding :

Κώδικας: Επιλογή όλων

<?xml version="1.0" encoding="ISO-8859-7"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" 
  "http&#58;//my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
και συνεχίζουμε ανοίγοντας το κανάλι επικοινωνίας:

Κώδικας: Επιλογή όλων

<channel>
τώρα στέλνουμε κάποια στοιχεία για την σελίδα μας:

Κώδικας: Επιλογή όλων

 <title>FreeStuff.gr</title>
 <link>http&#58;//www.freestuff.gr/</link>
 <description>FreeStuff.gr</description>
 <language>el</language>
έτσι έχουμε στείλει τον τίτλο της, το url της, μια περιγραφή και την γλώσσα που είναι γραμμένη.

Από εδώ και πέρα, μιας και θέλουμε απλά να μεταφέρουμε νέα και άρθρα, θα χρησιμοποιήσουμε μόνο το ELEMENT item το οποίο περιέχει τα (title | link | description) όπως βλέπουμε και στο DTD του RSS.

έτσι γράφουμε:

Κώδικας: Επιλογή όλων

 <item>
  <title>Φεβρουάριος 2005 - 6 Χρόνια FreeStuff</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=13760</link>
 </item>
όπου βασικά ανοίγουμε το item και μέσα βάζουμε τον τίτλο του θέματος / νέου, το url που θα πρέπει να επισκεφτεί κάποιος για να το βρει και στο τέλος κλείνουμε το item.

Αυτή την διαδικασία την επαναλαμβάνουμε για όσα θέματα / νέα επιθυμούμε να μοιραστούμε...

Κώδικας: Επιλογή όλων

 <item>
  <title>Xρόνια Πολλά και Ευχές εδώ!</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=7501</link>
 </item>

<item>
  <title>FreeStuff RSS feed</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=13751</link>
 </item>

και κλείνουμε το RSS μας κλείνοντας το κανάλι και φυσικά το RSS το ίδιο:

Κώδικας: Επιλογή όλων

</channel>
</rss>
έτσι το πλήρες RSS που μόλις φτιάξαμε έχει την μορφή:

Κώδικας: Επιλογή όλων

<?xml version="1.0" encoding="ISO-8859-7"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" 
  "http&#58;//my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">

<channel>
 <title>FreeStuff.gr</title>
 <link>http&#58;//www.freestuff.gr/</link>
 <description>FreeStuff.gr</description>
 <language>el</language>

 <item>
  <title>Φεβρουάριος 2005 - 6 Χρόνια FreeStuff</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=13760</link>
 </item>

<item>
  <title>Xρόνια Πολλά και Ευχές εδώ!</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=7501</link>
 </item>

<item>
  <title>FreeStuff RSS feed</title>
  <link>http&#58;//www.freestuff.gr/forums/viewtopic.php?t=13751</link>
 </item>

</channel>
</rss>
Τελευταία επεξεργασία από το μέλος cordis την 21 Φεβ 2006 12:14, έχει επεξεργασθεί 2 φορές συνολικά.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Ryu
Δημοσιεύσεις: 74
Εγγραφή: 24 Σεπ 2004 16:32

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από Ryu » 04 Φεβ 2005 16:34

Πολύ χρήσιμο tutorial. Να μην σου πω ότι είναι πιθανόν και το πρώτο ελληνικό. Ήθελα εδώ και καιρό να μάθω τι παίζεται και δεν είχα όρεξη με την τόση αγγλικούρα... Thanks!

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από dimsis » 04 Φεβ 2005 18:42

Ερώτηση κρίσεως

Σε σελίδα όπου έχω <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> πως θα εμφανιστεί το RSS με άλλο charset όπως αυτό του freestuff?
(βασικά στην ίδια σελίδα θέλω να έχω και UTF-8 και ISO-8859-7 feeds)

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από cordis » 04 Φεβ 2005 18:47

απλά πριν στείλεις το text σε αυτόν που κάνει το request το μετατρέπεις σε iso-8859-7.

iso-8859-7 σε utf8 και το αντίστροφο όπως τι συζητήσαμε για PHP, αλλά σύγουρα θα πάρεις μια ιδέα για το πως θα το κάνεις και σε CFM που δουλεύεις εσύ...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
tsiger
Honorary Member
Δημοσιεύσεις: 1431
Εγγραφή: 11 Νοέμ 2002 13:40
Τοποθεσία: Thessaloniki Observation Center
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από tsiger » 04 Φεβ 2005 20:54

εδω θα βρεις ενα custom tag που μετατρεπει iso-8859-1 (latin-1) characters σε utf-8 και αντιστροφα. Με μια μικρη τροποποιηση μπορει να δουλεψει και με iso-8859-7



Συμβατο με: CF 4.5 και πανω

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από mrpc » 22 Φεβ 2005 12:44

Στο header της σελίδας σας μπορείτε να προσθέσετε το tag

Κώδικας: Επιλογή όλων

<link rel="alternate" type="application/rss+xml" title="Freestuff.gr Latest Messages" href="http&#58;//www.freestuff.gr/exports.rss.php" />
(φυσικά με τα δικά σας στοιχεία)
και οι browser που υποστηρίζουν rss θα δουν αυτόματα το rss feed σας
π.χ. στον firefox θα εμφανίζεται ένα εικονίδιο κάτω δεξιά στο παράθυρο που κάνει αυτόματα την προσθήκη του feed στους σελιδοδείκτες του.

aetos
Δημοσιεύσεις: 182
Εγγραφή: 24 Αύγ 2003 09:00
Τοποθεσία: Evia
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από aetos » 22 Φεβ 2005 18:31

kalo tha to dokimaso na do an to katalava.

Άβαταρ μέλους
geraki
Honorary Member
Δημοσιεύσεις: 1404
Εγγραφή: 26 Ιαν 2004 20:10
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από geraki » 22 Φεβ 2005 20:15

cordis έγραψε:Στην PHP π.χ. θα γράψουμε:

Κώδικας: Επιλογή όλων

header&#40;"Content-type&#58; text/xml"&#41;;
mrpc έγραψε:Στο header της σελίδας σας μπορείτε να προσθέσετε το tag

Κώδικας: Επιλογή όλων

<link rel="alternate" type="application/rss+xml" title="Freestuff.gr Latest Messages" href="http&#58;//www.freestuff.gr/exports.rss.php" />
Είναι λάθος νομίζω στο link να δίνουμε ένα mime-type και το ίδιο το αρχείο (ο server στην ουσία) να δίνει άλλο.

Το πιο σωστό είναι να το σερβίρουμε ως application/rss+xml.
δηλ.

Κώδικας: Επιλογή όλων

header&#40;"Content-type&#58; application/rss+xml"&#41;;
Το ότι δεν θα το εμφανίζει ο browser αλλά θα ζητά αποθήκευση δεν μας ενδιαφέρει, αφού προορίζεται για να διαβάζεται μόνο από rss readers και από scripts.
Εικόνα &#8592; Αυτό το έκλεψα απ'τον Eneme.

garbofanoula
Δημοσιεύσεις: 79
Εγγραφή: 14 Οκτ 2003 19:14

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από garbofanoula » 08 Απρ 2005 19:16

paidia mporei na eimai teleiws xazi alla den exw katalavei pws akrivws kanoume publish to rss feed mas
endiaferomai na ftiaksw ena gia mia selida.
mporeite na me voithisete?
filakia

Άβαταρ μέλους
Dazed_and_confused
Δημοσιεύσεις: 743
Εγγραφή: 29 Νοέμ 2003 19:38
Τοποθεσία: Χίος, Θεσσαλονίκη
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από Dazed_and_confused » 12 Απρ 2005 13:29

Πολύ χρήσιμο το tut, thanx :)

Έχω μια απορία τώρα, πως μπορώ να κάνω κάποιο configuration του στυλ πόσα θέματα να δείχνει, πόσο μέγεθος να είναι το κάθε τάιτλ κλπ?

Άβαταρ μέλους
geraki
Honorary Member
Δημοσιεύσεις: 1404
Εγγραφή: 26 Ιαν 2004 20:10
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από geraki » 12 Απρ 2005 20:42

Έχμμ... Το tutorial είναι κυρίως για developers, δεν είναι βολικό να φτιάχνεις το rss feed με το χέρι. Απλά περιγράφει τι πρέπει να βγάζει το script που θα το κατασκευάσει.
Για να δημοσιεύσεις τις πληροφορίες που θα καταχωρηθούν στο feed, θα πρέπει να χρησιμοποιήσεις ένα news (ή blog) script (ή ένα cms) που εκτός του html που δημιουργεί για τον browser, βγάζει και έξοδο rss. Δηλαδή το κύριο προϊόν είναι τα 'νέα' και δεύτερο το rss.
Εικόνα &#8592; Αυτό το έκλεψα απ'τον Eneme.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από skeftomilos » 09 Αύγ 2005 07:34

Μόνο που ο Tsiger θα πρέπει να κοντύνει κάπως αυτό το απίστευτα μακρύ URL γιατί ξεχείλωσε η σελίδα και είναι πραγματικά κρίμα για τέτοιο tutorial! :D
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από elavd » 22 Σεπ 2005 14:21

Θα ήθελα να επαναφέρω, αυτό το θέμα λίγο στην επιφάνεια ρωτώντας το εξής:
Δεν κατάλαβα πώς ενσωματώνεται η PHP στο RSS ή το αντίθετο...
Δηλαδή, θα ήθελα να φτιάξω (ίσως και να μη δουλεύει έτσι το RSS βέβαια) ένα xml αρχειο, το οποίο θα ψάχνει στη MySQL μου, θα βρίσκει τα νέα και στο <link></link> θα προσθέτει δυναμικά το URL.

Μήπως πρέπει να φτιάξω ένα Php αρχείο που να ψάχνει στη και αυτό στη συνέχεια να δημιουργεί ή να γράφει σε ένα xml τα links?

Γίνεται αυτό ή δεν έχω καταλάβει τίποτα από το tutorial ? :lol:
Εικόνα

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από cordis » 22 Σεπ 2005 23:51

κάνεις select από την βάση σου και "γεμίζεις" τα items με τα δεδομένα που θέλεις.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
xmavidis
Honorary Member
Δημοσιεύσεις: 1217
Εγγραφή: 02 Δεκ 2003 19:59
Τοποθεσία: Ηράκλειο

Τι είναι το rss και ποια η δομή του.

Δημοσίευση από xmavidis » 02 Οκτ 2005 21:17

Κανένα παράδειγμα?
I want to know God’s thoughts; the rest are details.
Albert Einstein

Απάντηση

Επιστροφή στο “XML, XSLT”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες