• User Attivo

    Xml - Inserire una immagine

    Salve
    vorrei un consiglio.

    Ho creato un file xml per i feed reader. Ha sempre funzionato
    Stavolta voglio inserire il codice che richiama una immagine.

    Ho creato questo xml

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <rss version="0.91">
    <channel>
    <item>
    <title>titolo primo articolo</title>
    <link>ww.miosito.it/articolo.asp</link>
    <pubDate>10/30/2010</pubDate>
    <author>miosito</author>
    <description><p>Breve riassunto dell'articolo</p></description>
    <image><title>Banner</title>
    <url>ww.miosito/immagini/immagine.gif</url>
    <link>ww.miosito.it/pagina.asp</link>
    <width>400</width>
    <height>100</height></image>
    </item>

    <item>
    segue secondo articolo
    </item>

    Non necessariamente il link all'articolo e il link dell'immagine devono essere uguali. Qui li ho diversificati.

    L'immagine non si vede. Uso feedreader.
    Dove ho sbagliato? Quale sarebbe la compilazione corretta

    Grazie anticipate

    Flasini


  • User

    Ciao!
    Ho anche io lo stesso problema...e sto facendo un pò di ricerche :x, quindi non ho la soluzione per te! Se nel frattempo l'hai trovata fammi sapere se puoi! Grazie!
    Il tag "image" penso sia per inserire un immagine al feed, cioè nell'elemento channel :mmm:

    Torno a cercare la soluzione...:ciauz:


  • User Attivo

    ciao
    ok grazie
    Anch'io se trovo la soluzione ti avverto

    Dovrei inserire una immagine al feed. In modo che il lettore oltre al link abbia anche una immagine (non necessariamente con link all'articolo)

    Flasini


  • User

    Ciao!
    Al momento ho trovato questa soluzione, te la indico se può esserti utile!
    Ho usato, al posto del tag "description" il tag "content:encoded" che consente di inserire html e quindi anche tag <img> con o senza link.
    Esempio

    content:encoded
    <div><div style="float:left; margin-bottom:0.5em; margin-right:1em; margin-top: 4px;"><a style="text-decoration: none;" href="link_to_point"><img style="border: none;" width="120" height="130" src="link_to_image"/></a></div><a style="text-decoration: none;" href="link_to_point"><p style="float: bottom;">Tuo testo</p></a></div>
    </content:encoded>

    Per la compatibilità con la maggior part dei feed reader è consigliabile inserire anche il tag <description>: mi sembra che i reader prendano l'ultimo che interpretano!

    Spero di esserti stata utile!
    A presto 🙂


  • User Attivo

    In realtà penso che il sistema più semplice sia inserire l'HTML che si desidera all'interno del tag <description>, solo con le entità escaped (quindi "<" diventa "<" etc.)

    Ad esempio una cosa del genere dovrebbe funzionare:
    <description><img src="/url-immagine" /></description>

    Altro metodo è usare CDATA, così:
    <description><![CDATA[<img src="/url-immagine">]]></description>

    Fermo restando che:

    • a mio modo di vedere non è una buona idea inserire dell'HTML in un file RSS
    • perchè non usate RSS versione 2.0 invece della 0.91 (moooolto vecchia) ?

    Ciaooo! 🙂


  • User Attivo

    A pensarci bene probabilmente la soluzione migliore è avere entrambi i campi, ovvero <description> con un testo il più possibile "pulito" e poi un content:encoded con dentro un CDATA contenente l'HTML che si vuole mostrare - cioè una cosa tipo
    [html]content:encoded
    <![CDATA[<p><img src="immagine"><strong>altro html</strong> che voglio inserire, anche un <a href="">link</a></p>]]>
    </content:encoded>[/html]


  • User

    Ciao Html5Today!
    Grazie per le dritte, la seconda soluzione che hai postato è anche quella che avevo adottato! Comunque concordo con te: inserire html in un rss non lo trovo pulitissimo.

    Una cosa che non mi è chiara...da dove deduci che uso la versione 0.91? Mi sembra di star usando la 2.0...:?...ti riferisci a flasini?

    Grazie mille per la tua risposta!
    :ciauz:


  • User Attivo

    Sì mi riferivo a flasini, non mi pare che tu abbia postato una URL o un pezzo completo del tuo feed...

    Ciaooo! 🙂


  • User

    Già! 😉

    Visto che ci siamo questa è la URL del mio feed:

    <?xml version="1.0" ?><rss version="2.0" xmlns:content="***://purl.org/rss/1.0/modules/content/">
    
    

    Corretta? 🙂

    Grazie ancora!


  • User Attivo

    Direi di sì - poi in realtà basta che il feed sia valido... 😉


  • User

    Grazie...da una newbie 🙂


  • User Attivo

    ciao
    grazie per i vostri post

    Uso il feed 0.91 solo perchè è quello che uso da tempo.

    Vado a leggere il link che hai postato nell'altro mio post
    Una cosa sola.. Tra il 0.91 e il 2.0 c'è molta differenza?

    Usando il cdata risolverei?

    grazie

    Flasini


  • User Attivo

    ciao
    con i tuoi consigli ho risolto se parliamo di come viene visto dal mio feed reader.
    Grazie
    Ho dovuto mettere il content:encoded all'interno della description. Ossia dove metto un abstract della notizia. Quindi ho risolto

    Se lo metto in validazione mi da degli errori.

    '' XML parsing error: <unknown>:12:2: unbound prefix
    content:encoded
    ^

    e poi

    In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.
    Your feed appears to be encoded as "iso-8859-1", but your server is reporting "US-ASCII"
    ''

    Non so, ho inserito queste informazioni

    
    <?xml version="1.0" encoding="iso-8859-1"?>
    <rss version="2.0" xmlns:atom="**://***.w3.org/2005/Atom">
    
    

    se tolgo encoding non cambia molto.

    Dove posso aver sbagliato?

    Grazie ancora

    Flasini


  • User Attivo

    Uhm... puoi postare la URL del tuo feed così lo possiamo analizzare meglio?


  • User Attivo

    ciao
    grazie ancora

    Non credo posso postare l'url.

    Posto se vuoi il codice

    
     
    <?xml version="1.0"?>
    <rss version="2.0" xmlns:atom="**://***.w3.org/2005/Atom">
    <channel>
        <title>Miosito: Gli Rss</title>
        <link>**://***.miosito.it</link>
        <description>Gli Rss di Miosito.</description>
     <atom:link href=**://***.miosito.it/rss.xml rel="self" type="application/rss+xml" />
     <item>
      <title>Titolo 1</title>
      <link>**://***.miosito.it/articolo.asp?news=1</link>
      <description>descrizione 1
      <content:encoded>
      <![CDATA[<p><img src="**://***.miosito.it/immagini/immagine1.jpg"><strong>Miosito</strong>  leggi <a href="**://***.miosito.it/pagina1.asp">  pagina1</a></p>]]>
      </content:encoded></description>
     </item>
     <item>
      <title>Titolo 2</title>
      <link>**://***.miosito.it/articolo.asp?news=2</link>
      <description>descrizione 2  <content:encoded>
      <![CDATA[<p><img src="**://***.miosito.it/immagini/immagine2.jpg"><strong>Miosito</strong>  leggi <a href="**://***.miosito.it/pagina2.asp">  pagina2</a></p>]]>
      </content:encoded></description>
     </item>
    
    </channel>
    </rss>
     
    
    

    Non so se è abbastanza chiaro come l'ho riportato.

    Flasini


  • User

    @flasini said:

    >
     
     <item>
      <title>Titolo 1</title>
      <link>**://***.miosito.it/articolo.asp?news=1</link>
      <description>descrizione 1
      <content:encoded>
      <![CDATA[<p><img src="**://***.miosito.it/immagini/immagine1.jpg"><strong>Miosito</strong>  leggi <a href="**://***.miosito.it/pagina1.asp">  pagina1</a></p>]]>
      </content:encoded></description>
     </item>
     
    
    >```
    
     
    Credo che il primo errore sia nella chiusura del tag description: il tag content-encoded non deve essere contenuto all'interno del tag description, ma prima o dopo di esso. Una versione corretta sarebbe:
     
    

    <item>
    <title>Titolo 1</title>
    <link>://.miosito.it/articolo.asp?news=1</link>
    <description>descrizione 1</description>
    content:encoded
    <![CDATA[<p><img src="
    ://.miosito.it/immagini/immagine1.jpg"><strong>Miosito</strong> leggi <a href="://***.miosito.it/pagina1.asp"> pagina1</a></p>]]>
    </content:encoded>
    </item>

     
    Per il secondo avviso, recommendation, prova una ricerca su google, io ho trovato suggerimenti che potrebbero fare al caso tuo. Magari togli l'encoding e lascia valere quello che invii con l'header http.
    Prendi tutto con le pinze, perchè sono tutt'altro che esperta :D

  • User Attivo

    @flasini said:

    [...]

    >
     
    <?xml version="1.0"?>
    <rss version="2.0" xmlns:atom="**://***.w3.org/2005/Atom">
    <channel>
        <title>Miosito: Gli Rss</title>
        <link>**://***.miosito.it</link>
        <description>Gli Rss di Miosito.</description>
     <atom:link href=**://***.miosito.it/rss.xml rel="self" type="application/rss+xml" />
     <item>
      <title>Titolo 1</title>
      <link>**://***.miosito.it/articolo.asp?news=1</link>
      <description>descrizione 1
      <content:encoded>
      <![CDATA[<p><img src="**://***.miosito.it/immagini/immagine1.jpg"><strong>Miosito</strong>  leggi <a href="**://***.miosito.it/pagina1.asp">  pagina1</a></p>]]>
      </content:encoded></description>
     </item>
    
    [...]
    </channel>
    </rss>
     
    
    >```[...]
    Esatto, <content:encoded> va inserito fuori dalla <description> (di solito è lo stesso testo ma in HTML, mentre <description> è in plain text).
    
    Prova una cosa del genere:
    

    <?xml version="1.0"?>
    <rss version="2.0" xmlns:atom="://.w3.org/2005/Atom">
    <channel>
    <title>Miosito: Gli Rss</title>
    <link>
    ://.miosito.it</link>
    <description>Gli Rss di Miosito.</description>
    <atom:link href=
    ://.miosito.it/rss.xml rel="self" type="application/rss+xml" />
    <item>
    <title>Titolo 1</title>
    <link>
    ://
    **.miosito.it/articolo.asp?news=1</link>
    <description>descrizione in testo semplice (NO HTML!)</description>
    content:encoded
    descrizione in HTML anche con <a href="url">link</a> e tutto il resto
    </content:encoded>
    </item>

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


  • User Attivo

    ciao
    provo e vi faccio sapere

    Thx

    Flasini


  • User Newbie

    Mi aggiungo alla conversazione. Innanzi tutto, grazie! Ho risolto il mio problema di inserimento immagine nel feed. Ora vi chiedo: come faccio a posizionarla a sinistra?? Ho provato con style="float: left" ma non funziona.

    Ciao


  • User Attivo

    Prova con un
    [HTML]<img src="immagine" align="left" />[/HTML]

    HTH, ciao!