Un po di XSL per processare un feed di Google News

Pubblicato da Davide, giovedì 18 dicembre 2008 1 Commento »

Questo articolo e' stato scritto piu' di 6 mesi fa.. In teoria non cambia nulla, sed panta rei: se trovi link o informazioni datate segnalalo pure. :)

L’obiettivo è visualizzare con una trasformazione XSL il contenuto di un feed generato da Google News per una determinata parola la chiave. Come esempio ho lanciato la ricerca di tutte le notizie riguardanti “Obama” e questo è l’url del feed prodotto:
http://news.google.it/news?hl=it&ned=it&q=obama&ie=UTF-8&nolr=1&output=rss

Come noto, un feed RSS è un documento XML. La formattazione è classica:

<?xml version=”1.0″ encoding=”UTF-8″?>
<rss version=”2.0″>
<channel>
<generator>
NFE/1.0</generator>
<title>obama – Google News</title>
<link>http://news.google.it/news?hl=it&ned=it&q=obama&ie=UTF-8</link>
<language>it</language>
<webMaster>news-feedback@google.com</webMaster>
<copyright>©2008 Google</copyright>
<pubDate>Mon, 15 Dec 2008 14:34:32 GMT</pubDate>
<lastBuildDate>Mon, 15 Dec 2008 14:34:32 GMT</lastBuildDate>
<image>
<title>
obama – Google News</title>
<url>http://news.google.com/intl/it_it/images/news_res.gif</url>
<link>http://news.google.it/</link>
</image>
<item>
<title>
USA: OBAMA ANNUNCIA OGGI NOMINE ENERGIA E AMBIENTE – La Repubblica</title>
<link>http://news.google.it/news/url?sa=T&ct=it/0-0&fd=R&url=http://www.repubblica.it/news/ired/ultimora/esteri/rep_esteri_n_3455881.html&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNF0go8PkbUwHKLk9BaKdp8dFCS0hg</link>
<guid isPermaLink=”false”>tag:news.google.com,2005:cluster=http://www.repubblica.it/news/ired/ultimora/esteri/rep_esteri_n_3455881.html</guid>
<pubDate>Mon, 15 Dec 2008 07:37:02 GMT</pubDate>
<description><table border=0 width= valign=top cellpadding=2 cellspacing=7><tr><td width=80 align=center valign=top><font style=”font-size:85%;font-family:arial,sans-serif”><a  href=”http://news.google.it/news/url?sa=T&ct=it/0i-0&fd=R&url=http://www.instablog.org/ultime/35898.html&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNFqys_EXXw7Kh4xa96o32AB49JHvw”><img src=http://news.google.it/news?imgefp=ve3DuBkpQiwJ&imgurl=www.instablog.org/blogpress/art/ultimora/obama.jpg width=80 height=51 alt=”” border=1><br><font size=-2>The Instablog</font></a></font></td><td valign=top class=j><font style=”font-size:85%;font-family:arial,sans-serif”><br><div style=”padding-top:0.8em;”><img alt=”” height=”1″ width=”1″></div><div class=lh><a href=”http://news.google.it/news/url?sa=T&ct=it/0-0&fd=R&url=http://www.repubblica.it/news/ired/ultimora/esteri/rep_esteri_n_3455881.html&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNF0go8PkbUwHKLk9BaKdp8dFCS0hg”>USA: <b>OBAMA</b> ANNUNCIA OGGI NOMINE ENERGIA E AMBIENTE</a><br><font size=-1><font color=#6f6f6f>La Repubblica -</font> <nobr>6 ore fa</nobr></font><br><font size=-1>Il presidente eletto, Barack <b>Obama</b>, annuncera’ oggi le nomine del segretario al Dipartimento Energia e dello ‘zar’ per l’Ambiente. Gli annunci, che verranno <b>…</b></font><br><font size=-1><a href=”http://news.google.it/news/url?sa=T&ct=it/0-1&fd=R&url=http://notizie.alice.it/notizie/esteri/2008/12_dicembre/15/usa_obama_incontra_oggi_staff_difesa_e_annuncia_nomine_ambiente,17232675.html&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNHg4RwSRzsrR_uvMvcY3h-S38meRg”>Usa/ <b>Obama</b> incontra oggi staff difesa e annuncia nomine ambiente</a> <font size=-1 color=#6f6f6f><nobr>Virgilio Notizie</nobr></font></font><br><font size=-1><a href=”http://news.google.it/news/url?sa=T&ct=it/0-2&fd=R&url=http://www.agenziami.it/ultime/9415/USA%2BObama%2Bpronte%2Ble%2Bnomine%2Bper%2Bl%2Bambiente/&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNGniMEyAO4lJg5HiWJCKROXee8p_g”>USA. <b>Obama</b>, pronte le nomine per l’ambiente</a> <font size=-1 color=#6f6f6f><nobr>(ami) Agenzia Multimediale Italiana</nobr></font></font><br><font size=-1><a href=”http://news.google.it/news/url?sa=T&ct=it/0-3&fd=R&url=http://www.instablog.org/ultime/36309.html&cid=1263615727&ei=92pGScbgOJmmwAGz5pzbDg&usg=AFQjCNF64d7ozOXQdd8tBoaRDHWfPlBfsg”><b>Obama</b>: nomine ambiente, oggi gli annunci ufficiali</a> <font size=-1 color=#6f6f6f><nobr>The Instablog</nobr></font></font><br><font class=p size=-1><a class=p href=http://news.google.it/news?hl=it&ned=it&ie=UTF-8&ncl=1263615727><nobr>e altri 4 articoli simili</nobr></a></font></div></font></td></tr></table></description>
</item>

[...]
</channel>
</rss>


Si può formattare a dovere con un po’ di XSL per pubblicare ad esempio i titoli, rendendoli cliccabili con un link diretto all’articolo (quello contenuto nel tag <link>).

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:template match=”/rss”>
<html>
<head>
<!–<link href=”style.css” rel=”stylesheet” type=”text/css” />–>

</head>
<body>
<div id=”logo” style=”border-bottom: 1px solid #ccc; margin-bottom: 5px; font-size: 1.2em; font-weight: bold;”>
<xsl:element name=”a”>
<xsl:attribute name=”href”>
<xsl:value-of select=”channel/link” />
</xsl:attribute>
<xsl:value-of select=”channel/title” />
</xsl:element>
</div>
<div class=”Snippet”>
<ul style=”list-style: none; margin: 0; padding:0″>
<xsl:for-each select=”channel/item”>
<li>
<xsl:element name=”a”>
<xsl:attribute name=”href”>
<xsl:value-of select=”link”/>
</xsl:attribute>
<xsl:value-of select=”title”/>
</xsl:element>
<br/>
<small style=”color: #ccc; text-align: right”><xsl:value-of select=”pubDate” /></small>
</li>
</xsl:for-each>
</ul>
</div>
<div id=”footer” style=”display: none;”>
<xsl:value-of select=”channel/copyright” />
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Per semplificare un po’ ho aggiunto qualche regola CSS direttamente in linea, ma nulla vieta di creare un foglio esterno (ho commentato la porzione di codice che richiamerebbe un foglio di stile).
L’unica vera scocciatura di Google News è che non offre un feed pulito, ma all’interno del tag <description> inserisce codice html e questo può dare problemi in fase di parsing XML.

Per chi volesse approfondire l’argomento un buon punto di partenza è questo. Buona lettura.

1 Commento »

Puoi lasciare un tuo commento, oppure fare un trackback dal tuo sito.

Vuoi essere il primo a lasciare un commento per questo articolo? Utilizza il modulo sotto..

Lascia il tuo commento

 

http://livregratis.fr/ - http://club-ebook.fr/

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi