XML -- > Javascript

WRInaute discret
Salut,
j ai un site qui propose par défaut un fil RSS/XML de mes news

j aimerais également publier mes news via Javascript en utilisant le fil RSS

j ai trouvé cette page:
http://search.cpan.org/~esummers/XML-RS ... pt.pm#_top

en particulier cette partie:

Code:
Perhaps you want to get an existing RSS feed, suck it in, and write it out as JavaScript for easy consumption.

    use XML::RSS::JavaScript;
    use LWP::Simple;

    my $xml = get( 'http://slashdot.org/slashdot.rss' );
    my $rss = XML::RSS::JavaScript->new();
    
    $rss->parse( $xml );
    print $rss->as_javascript();

mais je n y suis pas arrivé :?

est ce que quelqu un s y connait en javascript et m indiquer comment m y prendre ?

cordialement
 
WRInaute discret
Fred t es en Ecosse ???
moi aussi...je suis à Edinburgh.....

bref...merci pour ta réponse mais ce que je veux: (c est pas pour le site de mon profil)

c'est "proposer" la diffusion de mes news via javascript.....

exemple, Clubic propose ses news via RSS ou via Javascript...


j aimerais pouvoir faire la meme chose...mes news en RSS sont dispo, et j aimerais les convertir en javascript...

pour que d autres webmasters publient mes news sur leur site (en ayant le choix: récupérer le fil ou récupérer mon script javascript)....

c'est là ou j ai du mal ! :?
 
WRInaute discret
merci :)

mais je suis vraiment trop mauvais ! :?

j ai créé un fichier "fichier2.js" avec ce contenu:

Code:
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 5 texte du fil d'info</a><br>'); 
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 4 texte du fil d'info</a><br>'); 
document.write('11/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 3 texte du fil d'info</a><br>'); 
document.write('10/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 2 texte du fil d'info</a><br>'); 
document.write('09/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 1 texte du fil d'info</a><br><br>'); 
document.write('Le fil d'info vous est offert par '); 
document.write('<a href="http://www.egs-howto.com">egs-howto</a>');

je l ai mis sur mon serveur...
je l appelle dans une page avec

Code:
<script language="JavaScript" src="http://www.adresse.com/fichier2.js"></script>

mais la page est vide :? :?
 
WRInaute discret
Pour ton problème, il doit s'agir d'une erreur javascript.
Ajoute un \ avant les simples cotes dans les strings

chez moi ca fonction avec le code suivant :

fichier "fichier2.js" :
Code:
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">');
document.write('Titre 5 texte du fil d\'info</a><br>');
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">');
document.write('Titre 4 texte du fil d\'info</a><br>');
document.write('11/02 - <a href="http://www.egs-howto.com" target="_blank">');
document.write('Titre 3 texte du fil d\'info</a><br>');
document.write('10/02 - <a href="http://www.egs-howto.com" target="_blank">');
document.write('Titre 2 texte du fil d\'info</a><br>');
document.write('09/02 - <a href="http://www.egs-howto.com" target="_blank">');
document.write('Titre 1 texte du fil d\'info</a><br><br>');
document.write('Le fil d\'info vous est offert par ');
document.write('<a href="http://www.egs-howto.com">egs-howto</a>');

Note les \ sur "'Le fil d\'info vous est offert par"

Dans le fichier html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>

<BODY >
<script language="JavaScript" src="fichier2.js"></script>
</BODY>
</HTML>


Concernant l'url que j'ai posté prédédemment, il s'agit d'un fonction js pour parser le flux rss. On lui fourni en paramètre l'url du flux et en suite c'est du parsing à l'aide de DOM.

Malheureusement tous les navigateurs ne le supporte pas ;(

a+

Fred
 
WRInaute discret
je te remercie fred, enfin ça marche !

French Fred a dit:
Concernant l'url que j'ai posté prédédemment, il s'agit d'un fonction js pour parser le flux rss. On lui fourni en paramètre l'url du flux et en suite c'est du parsing à l'aide de DOM.

Malheureusement tous les navigateurs ne le supporte pas ;(

a+

Fred


c est justement xactement ce que je cherche, une fonction js qui prend en paramètre un fil RSS ....est ce que l url que tu m as passé est le résultat de cette fonction ?
saurais tu ou je pourrais trouver cette fonction car j ai un peu de mal avec la langue de ce site...

cordialement
 
WRInaute discret
L'url que je t'ai donné est effectivement le resultat de la fonction
Voici une adpatation de la fonction :

fichier d'exemple rss :
Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="0.91">
    <channel>
        <title>Mon titre</title>
        <link>www.MonSite.com</link>
        <description>Mes news en RSS a votre dispo</description>
        <language>fr</language>
        <webMaster>contact@monsite.com</webMaster>
        <lastBuildDate>04/17/04 14:00 CEST</lastBuildDate>
        <item>
            <title>1 ere titre</title>
            <link>http://www.monsite.com/news/news1.html</link>
            <description>Pourquoi pas une desciption</description>
        </item>
        <item>
            <title>2 eme news</title>
            <link>http://www.monsite.com/news/news2.html</link>
            <description>Pourquoi pas une desciption</description>
        </item>
        <item>
            <title>3 eme news</title>
            <link>http://www.monsite.com/news/news3.html</link>
            <description>Pourquoi pas une desciption</description>
        </item>
        <item>
            <title>4 eme news</title>
            <link>http://www.monsite.com/news/news4.html</link>
            <description>Pourquoi pas une desciption</description>
        </item>
    </channel>
</rss>

Exemple dans un fichier xml:
Code:
<html>
<head>
<title></title>
    <script language="javascript"><!--

    function getrss(rsslink)
    {

    // Maximum de news à afficher
    var intMaxNoOfHeadlines = 6;

    // Initialise l'object DOM
    var newxml = new ActiveXObject("Microsoft.XMLDOM");
    newxml.async = false;
    newxml.load(rsslink);

    // Recupere le "titre" dans le node "channel" et le format dans un th
    var sitetitle = newxml.selectNodes( "//channel" ).item( 0 ).selectSingleNode( "title" ).text
    var strHTML = "<table><th style='font-size: 12;'>"+sitetitle+"</th><tr>";

    // creation d'une variable contenant tous les nodes "item"
    var newsitems = newxml.selectNodes( "//item" );

    // limite l'affchage des news si nombre de "item" > intMaxNoOfHeadlines
    var intNoOfHeadlines = newsitems.length;
    if (intNoOfHeadlines > intMaxNoOfHeadlines)
    {
        intNoOfHeadlines = intMaxNoOfHeadlines;
    }

    // parcours les nodes "item"
    for( var i = 0; i < intNoOfHeadlines; i++ )
    {
        // recuperer le node //channel/item/link => newsitems.item( i ).selectSingleNode( "link" )
        // recuperer le node //channel/item/title => newsitems.item( i ).selectSingleNode( "title" )
        // recuperer le node //channel/item/description=> newsitems.item( i ).selectSingleNode( "description" )

        strHTML += "<td style='font-size: 12;'><a href='"+newsitems.item( i ).selectSingleNode( "link" ).text +"' ";
        strHTML += " title='"+ newsitems.item( i ).selectSingleNode( "title" ).text + "'>";
        strHTML += newsitems.item( i ).selectSingleNode( "title" ).text + "</a></td>";
        strHTML += "</tr>";
    }

    strHTML += "</table>";
    return strHTML;
    }
    //-->
    </script>

</HEAD>

<BODY >
<script language="javascript">
var vs_html = getrss('http://www.monsite.com/news.rss');
document.write(vs_html);
</script>
</BODY>
</HTML>

J'ai commenté la fonction pour que ce soit plus claire.
1/ La fonction format les resultats sous forme de tableau html. A toi de l'adapter
2/ Il sera peut être nécessaire d'utiliser des CDATA pour les nodes contenant des lettres avec accent (é, à, ...)

Si tu utilises la fonction, envoi un petit mail à l'auteur ;)

Petit rappel qui à son importance : Ca ne fonctionne qu'avec IE !!!
 
WRInaute discret
Ok.

Si tu souhaites un peu d'aide en js, n'hésite pas à me contacter.
Javascript, c'est mon kif ;)

Au fait, tu fais quoi à Edinburgh ?
Boulot ou Etudiant ?

a+

Fred
 
WRInaute discret
French Fred a dit:
Ok.

Si tu souhaites un peu d'aide en js, n'hésite pas à me contacter.
Javascript, c'est mon kif ;)

Au fait, tu fais quoi à Edinburgh ?
Boulot ou Etudiant ?

a+

Fred

je te remercie pour ton aide ! ;-)
par contre viens sur mon forum, ce serait mieux non ?....ici ca va etre tendu de parler de ma vie :)
 
WRInaute discret
Bonjour,

Merci pr ce post, c'est exactement ce que je cherchais...par contre je comprends pas tout...j'ai compris qu'il fallait créer un fichier avec :
Code:
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 5 texte du fil d\'info</a><br>'); 
document.write('12/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 4 texte du fil d\'info</a><br>'); 
document.write('11/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 3 texte du fil d\'info</a><br>'); 
document.write('10/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 2 texte du fil d\'info</a><br>'); 
document.write('09/02 - <a href="http://www.egs-howto.com" target="_blank">'); 
document.write('Titre 1 texte du fil d\'info</a><br><br>'); 
document.write('Le fil d\'info vous est offert par '); 
document.write('<a href="http://www.egs-howto.com">egs-howto</a>');

mais tel quel en modifiant l'url ça ne marche pas..j'ai bien Titre 1 etc qui s'affiche mais rien à voir avec mon site...et si je reprend les 5 derniers posts, ils restent fixes et non dynamiques. Il doit me manquer une info je crois? :cry:

merci de votre réponse!
 
WRInaute passionné
Par ce qu'il faut un language "coté serveur" qui réalise la mise à jour du fichier demandé :wink:

Un bebmaster veut publier un fil (en javascript) d'un siteY sur une un site Z
il met en place sur une page de son site un lien du type
Code:
<script type="text/javascript" src="h*tp://www.siteY/news.js"></script>

Quand cette page est demandée, le navigateur va demander l'url h*tp://www.siteY/news.js

le serveur du site Y doit renvoyer la page news.js à jour, c'est à dire que la page doit être tenue à jour par un système de cache : A chaque nouvelle news postée sur le site Y, il faut aussi recréer la page fil.js qui inclue cette nouvelle news.

C'est donc pas si simple !
Compris ?
 
WRInaute discret
Merci pr tes précisions..mais j'avoue que c'est pas encore tout à fait clair! Tu connais une adresse de tuto?

En attendant j'ai utilisé ce logiciel http://chxo.com/software/feedsplitter/ ...qui me transforme sur mon serveur le fil rss en javascript...mais bon au final le but c'est que je le fasse tte seule lol ^^
 
WRInaute discret
Bonjour,

Aujourd'hui je suis assez flemmard (ca arrive parfois), alors voici le mode operatoire pour integrer un fil RSS/Atom en javascript:

1/ Creer un fichier php (eg: lecteur-rss.php) ayant les entetes javascript:
Code:
<?php
header("Content-type: text/javascript;")
?>

2/ Dans ce fichier, recuperer le flux de syndication pour le "parser" (decouper) via une librairie adequate

3/ Generer le code javascript avec les donnees du flux et l'imprimer

Une fois le fichier genere, il doit resembler a quelle que chose comme ca:
Code:
document.write('Date - <a href="url" target="_blank">Titre</a><br>');
...
document.write('Le fil d\'info vous est offert par ');
document.write('<a ref="Url du site">Nom du site</a>');

Pour finir, proposer aux utilisateurs finaux, d'inserer le code suivant dans leur site:
Code:
<script type="text/javascript" src="http://www.example.com/lecteur-rss.php"></script>

Sinon en cherchant bien, il doit etre possible de trouver un code tout pret quelque part, dans la galaxie Internet, far away...
 
Discussions similaires
Haut