Per chi non sapesse cosa è un RSS, diciamo che è un riassunto del sito in formato XML; utile per vedere aggiornamenti o le ultime notizie pubblicate.
Per esempio il feed RSS di questo blog è scaricabile dal link: http://livecodeitalia.blogspot.com/feeds/posts/default
e il suo contenuto, in formato Atom, in questo momento è:
<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4445525023951541943</id><updated>2014-11-20T17:00:07.053+01:00</updated><category term="programmazione"/><category term="casi di successo"/><category term="eventi"/><category term="grafica"/><category term="animazione"/><category term="immagini"/><category term="mobile"/><category term="videogiochi"/><category term="internet"/><category term="testi"/><category term="Android"/><category term="iOS"/><category term="database"/><category term="debug"/><category term="stampa"/><category term="browser"/><category term="filesystem"/><category term="mac"/><category term="pdf"/><category term="raspberry pi"/><category term="XML"/><category term="audio"/><category term="licenze"/><category term="linux"/><category term="windows"/><category term="3D"/><category term="arduino"/><category term="cloud"/><category term="compressione"/><category term="estensioni"/><category term="matematica"/><category term="versione"/><category term="video"/><title type='text'>Livecode Italia</title><subtitle type='html'>Livecode: un linguaggio di programmazione gratuito, semplice e completo per: Windows, Mac, Linux, Android, iOS e Raspberry Pi.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://livecodeitalia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default'/><link rel='alternate' type='text/html' href='http://livecodeitalia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default?start-index=26&max-results=25'/><author><name>Max V</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-0gSDErJzGaU/AAAAAAAAAAI/AAAAAAAABkg/vz8NYNQrMhw/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4445525023951541943.post-5132512118640945924</id><published>2014-11-18T11:58:00.000+01:00</published><updated>2014-11-18T11:58:18.143+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="casi di successo"/><title type='text'>WhiteFly</title><content type='html'>Ho contattato il Sig. Paolo Borzini della società italiana <a href="http://www.borzini.it/">WhiteFly</a>.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://www.borzini.it/rw_common/images/LogoTheWhiteFly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.borzini.it/rw_common/images/LogoTheWhiteFly.png" height="64" width="320" /></a></div>Questa società in poco più di due anni ha sviluppato più di 50 app! Potete trovare i loro programmi anche sotto il nome di Borzini software.<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://www.borzini.it/rw_common/themes/mirage/images/editable_images/image6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.borzini.it/rw_common/themes/mirage/images/editable_images/image6.jpg" height="64" width="320" /></a></div>La società fornisce anche un valido supporto a chi voglia sviluppare una app e non abbia tempo o conoscenze adeguate per produrla; partendo dalla progettazione fino alla pubblicazione sullo <i>store</i>.<br /><br />In questo momento il Sig. Borzini è impegnato su vari progetti, ma nonostante ciò mi ha gentilmente inviato una breve presentazione della società che pubblico con piacere:<br /><br /><cite>The WhiteFly è stata fondata due anni fa con due scopi, il primo è gestire un service on-line per serigrafi e l'altro sviluppare software per smartphone. <br /> Il tool di sviluppo che uso è LiveCode, tra i linguaggi di programmazione che conosco c'è HyperTalk usato attraverso Hypercard a cavallo tra gli anni 80 e 90 per sviluppare gestionali su piattaforme Apple. La scelta di LiveCode, evoluzione naturale di HyperTalk/HyperCard non è data solo dall'estrema portabilità del sorgente e dalla riusabilità del codice ma dalla potenza del linguaggio. Con poche manciate di codice è possibile fare procedure che con altri linguaggi richiederebbero centinaia di righe.<br /> Per un'azienda come la mia, il poter recuperare parti di codice già scritto e preparare la stessa applicazione per più piattaforme con minime modifiche è la carta vincente.<br /> Fino ad ora ho sviluppato oltre cinquanta applicazioni per iOS/Android sia conto terzi che per clienti finali, oltre ad una decina di app ,che una volta avremmo chiamato inutility ovvero applicazioni troppo specifiche e particolari da trovare un mercato ampio, ma ora grazie alla diffusione degli store e dei sistemi su cui possono girare, queste app hanno un loro mercato. Grazie alla versatilità di LiveCode ho sviluppato app diametralmente opposte tra loro; ci sono semplici applicazioni commerciali per centri estetici, per alberghi e club per andare poi ad applicazioni come il dizionario italiano/cinese che gestisce pinyin o più complessi come gestionali con carico e scarico magazzino tramite smartphone o app che si interfacciano a macchinari come misuratori di pelle nel settore conciario o che gestiscono sistemi domotici a distanza oppure ad analizzatori di documenti.<br /> Grazie a LiveCode ho sviluppato questi software in una piccola parte del tempo che avrei dovuto impiegare se avessi usato altri sistemi di sviluppo.</cite><br /><br />Se volete entrare in contatto con il Sig. Borzini, basta andare sul suo sito: <a href="http://www.borzini.it/">http://www.borzini.it/</a></content><link rel='replies' type='application/atom+xml' href='http://livecodeitalia.blogspot.com/feeds/5132512118640945924/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/whitefly.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/5132512118640945924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/5132512118640945924'/><link rel='alternate' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/whitefly.html' title='WhiteFly'/><author><name>Max V</name><uri>https://plus.google.com/117875773076259835208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-0gSDErJzGaU/AAAAAAAAAAI/AAAAAAAABkg/vz8NYNQrMhw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4445525023951541943.post-7278118855352324491</id><published>2014-11-17T11:21:00.000+01:00</published><updated>2014-11-17T11:21:18.072+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programmazione"/><category scheme="http://www.blogger.com/atom/ns#" term="testi"/><title type='text'>Prefissi e suffissi</title><content type='html'>Il post di oggi mostra come controllare se un testo comincia o finisce in un determinato modo. Ad esempio vogliamo controllare che l'estensione di un file sia JPG, basterà utilizzare il comando <b>ends with</b>,<b> </b>esempio:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: black;">if</span></b><span style="color: black;"> myfile </span><span style="color: #7f007f;">ends</span><span style="color: black;"> </span><span style="color: #7f007f;">with</span><span style="color: black;"> </span><span style="color: #00007f;">"jpg"</span><span style="color: black;"> <b>then</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">answer</span></b><span style="color: black;"> </span><span style="color: #00007f;">"E' un'immagine!"</span></code><br /><code><b><span style="color: black;">end</span></b><span style="color: black;"> <b>if</b></span></code><br /><code><br /></code></div>Potete utilizzare anche più di tre lettere per il controllo. I controlli di solito fa distinzione fra maiuscole o minuscole, però se vi serve una distinzione dovete impostare la proprietà globale <b>caseSensitive</b> su <i>true</i>.<br />Vi ricordo che, per controllare se le estensione di un file è tra quelle ammesse, un altro sistema molto comodo è metterle tutte in una stringa separate da virgola e usare il seguente codice:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: black;">if</span></b><span style="color: black;"> </span><span style="color: #7f007f;">char</span><span style="color: black;"> -3 </span><span style="color: #7f007f;">to</span><span style="color: black;"> -1 </span><span style="color: #7f007f;">of</span><span style="color: black;"> myfile </span><span style="color: #7f007f;">is</span><span style="color: black;"> </span><span style="color: #7f007f;">among</span><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #7f007f;">items</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #00007f;">"jpg,gif,bmp,tif"</span><span style="color: black;"> <b>then</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">answer</span></b><span style="color: black;"> </span><span style="color: #00007f;">"E' un'immagine!"</span></code><br /><code><b><span style="color: black;">end</span></b><span style="color: black;"> <b>if</b></span></code><br /><code><br /></code></div><br />Per controllare invece se un testo comincia con un certo prefisso, basta usare <b>begins with</b>; esempio:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: black;">if</span></b><span style="color: black;"> myfile </span><span style="color: #7f007f;">begins</span><span style="color: black;"> </span><span style="color: #7f007f;">with</span><span style="color: black;"> </span><span style="color: #00007f;">"C'era una volta"</span><span style="color: black;"> <b>then</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">answer</span></b><span style="color: black;"> </span><span style="color: #00007f;">"E' una favola!"</span></code><br /><code><b><span style="color: black;">end</span></b><span style="color: black;"> <b>if</b></span></code><br /><code><br /></code></div><br />Se avete altri sistemi per fare controlli sulle stringhe, metteteli nei commenti di questo posto.</content><link rel='replies' type='application/atom+xml' href='http://livecodeitalia.blogspot.com/feeds/7278118855352324491/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/prefissi-e-suffissi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/7278118855352324491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/7278118855352324491'/><link rel='alternate' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/prefissi-e-suffissi.html' title='Prefissi e suffissi'/><author><name>Max V</name><uri>https://plus.google.com/117875773076259835208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-0gSDErJzGaU/AAAAAAAAAAI/AAAAAAAABkg/vz8NYNQrMhw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4445525023951541943.post-5883290158683735212</id><published>2014-11-14T16:58:00.001+01:00</published><updated>2014-11-14T17:00:13.577+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programmazione"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><title type='text'>I metadati di un testo</title><content type='html'>Livecode supporta l'inserimento di meta data all'interno di un testo, cioè l'inserimento di dati che non sono visibili all'utente che legge il testo.<br />Per inserire dei metatag ci sono vari modi: potete passare attraverso la proprietà <b>htmlText</b>:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: #7f7f00;">set</span></b><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #007f7f;">htmlText</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">field</span><span style="color: black;"> </span><span style="color: #00007f;">1</span><span style="color: black;"> </span><span style="color: #7f007f;">to</span><span style="color: black;"> </span><span style="color: #00007f;">"Testo normale. &lt;span metadata="</span><span style="color: black;"> &amp; </span><span style="color: #7f007f;">quote</span><span style="color: black;"> &amp; </span><span style="color: #00007f;">"dato nascosto"</span><span style="color: black;"> &amp; </span><span style="color: #7f007f;">quote</span><span style="color: black;"> &amp; </span><span style="color: #00007f;">"&gt;Testo con metadata&lt;/span&gt;"</span></code></div><br />come vedete è solo un tag <i>span</i>.<br />Oppure utilizzare la proprietà metadata:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: #7f7f00;">set</span></b><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #007f7f;">metaData</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">word</span><span style="color: black;"> </span><span style="color: #00007f;">3</span><span style="color: black;"> </span><span style="color: #7f007f;">to</span><span style="color: black;"> </span><span style="color: #00007f;">5</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">field</span><span style="color: black;"> </span><span style="color: #00007f;">1</span><span style="color: black;"> </span><span style="color: #7f007f;">to</span><span style="color: black;"> </span><span style="color: #00007f;">"dato nascosto"</span></code></div><br /><br />Cosa si può fare con i metadati? Esistono già le proprietà personalizzabili (<i>cutom properties</i>) che possono contenere dati non visibili all'utente, ma i metadati possono creare effetti legati al testo o trasferire informazioni che non debbono essere visualizzate dall'utente.<br />Come esempio pratico facciamo in modo che appaia il valore del metadato di una parola passandoci sopra il mouse:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: black;">on</span></b><span style="color: black;"> mouseMove</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;<b>if</b> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #7f007f;">mouseChunk</span><span style="color: black;"> </span><span style="color: #7f007f;">is</span><span style="color: black;"> </span><span style="color: #7f007f;">empty</span><span style="color: black;"> <b>then</b> </span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exit</b> mouseMove</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;<b>end</b> <b>if</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">set</span></b><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #007f7f;">toolTip</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">me</span><span style="color: black;"> </span><span style="color: #7f007f;">to</span><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #007f7f;">metaData</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #7f007f;">mouseChunk</span></code><br /><code><b><span style="color: black;">end</span></b><span style="color: black;"> mouseMove </span></code></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOhf2jR7DFOu9mZ0zpwLbAeYX78EDcJn-IkdKCJJQ4niANqU5-_urxv-RC8wMGvPDBy0XFBXv2NOOFFiLuaXTV3krP4_fP_V0xlZ_JyAccP0WogNPD6LSWmntXD1w6n0xlB3xaqUN046K0/s1600/metadato.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOhf2jR7DFOu9mZ0zpwLbAeYX78EDcJn-IkdKCJJQ4niANqU5-_urxv-RC8wMGvPDBy0XFBXv2NOOFFiLuaXTV3krP4_fP_V0xlZ_JyAccP0WogNPD6LSWmntXD1w6n0xlB3xaqUN046K0/s1600/metadato.jpg" height="182" width="320" /></a></div>Un altro modo per avere la lista dei metadati è passare attraverso l'array della proprietà <b>StyledText</b>; non che mi piaccia, ma può essere utile saperlo:<br /><code></code><br /><div style="background-color: #d8d8d8; border: 1px solid grey; max-height: 400px; overflow-x: scroll; overflow-y: scroll; white-space: nowrap; width: 100%;"><code><b><span style="color: black;">repeat</span></b><span style="color: black;"> </span><span style="color: #7f007f;">for</span><span style="color: black;"> </span><span style="color: #7f007f;">each</span><span style="color: black;"> </span><span style="color: #7f007f;">element</span><span style="color: black;"> tParagraph </span><span style="color: #7f007f;">in</span><span style="color: black;"> </span><span style="color: #7f007f;">the</span><span style="color: black;"> </span><span style="color: #007f7f;">styledText</span><span style="color: black;"> </span><span style="color: #7f007f;">of</span><span style="color: black;"> </span><span style="color: #7f007f;">field</span><span style="color: black;"> </span><span style="color: #00007f;">"Content"</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">add</span></b><span style="color: black;"> </span><span style="color: #00007f;">1</span><span style="color: black;"> </span><span style="color: #7f007f;">to</span><span style="color: black;"> theParagraphCount</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;<b>repeat</b> </span><span style="color: #7f007f;">for</span><span style="color: black;"> </span><span style="color: #7f007f;">each</span><span style="color: black;"> </span><span style="color: #7f007f;">element</span><span style="color: black;"> tRun </span><span style="color: #7f007f;">in</span><span style="color: black;"> tParagraph[</span><span style="color: #00007f;">"runs"</span><span style="color: black;">]</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>if</b> tRun[</span><span style="color: #00007f;">"metadata"</span><span style="color: black;">] </span><span style="color: #7f007f;">is</span><span style="color: black;"> </span><span style="color: #7f007f;">not</span><span style="color: black;"> </span><span style="color: #7f007f;">empty</span><span style="color: black;"> <b>then</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><b><span style="color: #7f7f00;">put</span></b><span style="color: black;"> theParagraphCount &amp; </span><b><span style="color: #7f7f00;">return</span></b><span style="color: black;"> &amp; tRun[</span><span style="color: #00007f;">"metadata"</span><span style="color: black;">] &amp; </span><b><span style="color: #7f7f00;">return</span></b><span style="color: black;"> &amp; </span><b><span style="color: #7f7f00;">return</span></b><span style="color: black;"> </span><span style="color: #7f007f;">after</span><span style="color: black;"> theOutput</span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>end</b> <b>if</b></span></code><br /><code><span style="color: black;">&nbsp;&nbsp;&nbsp;<b>end</b> <b>repeat</b></span></code><br /><code><b><span style="color: black;">end</span></b><span style="color: black;"> <b>repeat</b></span></code><br /><code><b><span style="color: #7f7f00;">put</span></b><span style="color: black;"> theOutput</span><span style="color: #00007f;"></span></code><br /><code><br /></code><code><br /></code></div></content><link rel='replies' type='application/atom+xml' href='http://livecodeitalia.blogspot.com/feeds/5883290158683735212/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/i-meta-data-di-un-testo.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/5883290158683735212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/5883290158683735212'/><link rel='alternate' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/i-meta-data-di-un-testo.html' title='I metadati di un testo'/><author><name>Max V</name><uri>https://plus.google.com/117875773076259835208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-0gSDErJzGaU/AAAAAAAAAAI/AAAAAAAABkg/vz8NYNQrMhw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOhf2jR7DFOu9mZ0zpwLbAeYX78EDcJn-IkdKCJJQ4niANqU5-_urxv-RC8wMGvPDBy0XFBXv2NOOFFiLuaXTV3krP4_fP_V0xlZ_JyAccP0WogNPD6LSWmntXD1w6n0xlB3xaqUN046K0/s72-c/metadato.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999
Ok, fa spavento, ma in realtà è molto semplice. Se lo leggiamo con calma, mandando a capo ogni tag, ci accorgiamo che lo schema ha dei tag iniziali che spiegano il blog e di cosa parla, e poi dei tag per ogni post del blog in questa forma:
<entry>
<id>tag:blogger.com,1999:blog-4445525023951541943.post-5132512118640945924</id>
<published>2014-11-18T11:58:00.000+01:00</published>
<updated>2014-11-18T11:58:18.143+01:00</updated>
<category scheme="http://www.blogger.com/atom/ns#" term="casi di successo"/>
<title type='text'>WhiteFly</title>
<content type='html'>Ho contattato il Sig. Paolo Borzini della ...</content>
<link rel='replies' type='application/atom+xml' href='http://livecodeitalia.blogspot.com/feeds/5132512118640945924/comments/default' title='Commenti sul post'/>
<link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445525023951541943/posts/default/5132512118640945924'/>
<link rel='alternate' type='text/html' href='http://livecodeitalia.blogspot.com/2014/11/whitefly.html' title='WhiteFly'/> <author><name>Max V</name> ... </author>
<thr:total>0</thr:total>
</entry>
I tag entry di questo feed sono solo 25, ognuno in ordine contiene i dati degli ultimi 25 post. Per avere la lista dei titoli, anche senza sapere di quanti entry sia composto, basta il seguente codice (connID contiene il numero di connessione al XML, mentre curn è il nodo corrente):
on mouseUp
put the conID of this card into connID
put "/feed/entry" into curn
repeat while (curn begins with "/feed")
put revXMLNodeContents(connID, curn & "/title") & return after lista
put revXMLNextSibling(connID, curn ) into curn
end repeat
put lista
end mouseUp
Analizziamo il codice: leggiamo il contenuto del tag title del primo tag entry utilizzando il comando revXMLNodeContents. Poi andiamo grazie al ciclo repeat andiamo al prossimo tag entry, se non c'è apparirà xmlerr e quindi usciremo dal ciclo.
Se vogliamo creare un testo con i titoli, i link e i contenuti di ogni post il codice è:
on mouseUp
put the conID of this card into connID
put "/feed/entry" into curn
repeat while (curn begins with "/feed")
put "<h2>" & revXMLNodeContents(connID, curn & "/title") & "</h2><br>" after lista
#cerchiamo il link
put curn & "/link" into curN2
repeat while (curn2 begins with curN)
if (revXMLAttribute(connID, curn2 ,"type") is "text/html" ) AND (revXMLAttribute(connID, curn2 ,"rel") is "alternate" ) then
put revXMLAttribute(connID, curn2 , "href") into thelink
put "<a href=" & thelink & " >" & thelink & "</a><br>" after lista
end if
put revXMLNextSibling(connID, curn2 ) into curn2
end repeat
put revXMLNodeContents(connID, curn & "/content") & "<br>" after lista
put revXMLNextSibling(connID, curn ) into curn
end repeat
set the htmltext of field "myRSS" to textDecode(lista ,"UTF-8")
answer "Feed caricato"
end mouseUp
Qui usiamo lo stesso sistema di prima, solo che il link è una prorpietà di href del tag link e quindi ci serve la funzione revXMLAttribute(). Siccome ci sono diversi tag link per ogni post ho inserito una condizione (if) di controllo per verificare che sia il tag link corretto.
Notate infine che questo sito usa la codifica UTF-8 dei caratteri, per non avere problemi sui caratteri accentati ho imposto la decodifica corretta usando textdecode().
Ecco un esempio del risultato:
Vi ricordo di attivare il locktext e di aggiungere il seguente codice al campo dove appaiono i link per renderli cliccabili:
on linkClicked pLink
launch URL pLink
end linkClicked
Ora sapete gestire i feed RSS in formato ATOM, che è il più complicato, quindi potete gestirli tutti. :-)
Nessun commento:
Posta un commento