Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125

    Recupero var da XML con HTMLencode

    dunque ho un file XML con la seguente riga:
    XML: <description><![CDATA[Novità...]]></description>

    se per leggerla uso questo codice:
    ASP: strNews_Descr = Server.HTMLEncode(objNode2.firstChild.nodevalue)

    NON funziona...


    Se invece utilizzo:
    XML: <description><![CDATA[Novit & agrave;]]></description>
    ASP: strNews_Descr = objNode2.firstChild.nodevalue

    Funziona benissimo...
    Il file XML viene modificato quando viene updatato il database. I caratteri vengono scritti nel XML come appaiono nel DB cioè con i caratteri accentati: dorebbero poi passare attraverso un HTMLencode per poter restituire i caratteri encodati correttamente per la pagina HTML.
    Qualche idea ?

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Vuoi dire HtmlDecode!

  3. #3
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125
    No no, io vorrei che nell'XML rimanessero i caratteri accentati. Ma vorrei mostrarli all'interno del HTML encodati correttamente, quindi con HTMLencode... o sbaglio?

    Forse è meglio far si che siano già encodati all'interno del XML ?

    Grazie Baol74

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    come costruisci l'xml ? Con l'oggetto microsoft o concateni delle stringhe?

  5. #5
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125
    In questo modo:
    codice:
    <%
    
    Dim strPath
    strPath = Server.Mappath("eventi.xml")
    
    Dim FSO
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
    
    Dim WriteFileNews
    Set WriteFileNews = FSO.CreateTextFile(strPath)
    
    Set LeggiInizioNews = FSO.OpenTextFile(Server.Mappath("eventi_blank_start.txt"),1)
    	WriteFileNews.Write(LeggiInizioNews.ReadAll & vbcrlf)
    LeggiInizioNews.Close
    Set LeggiInizioNews = Nothing
    
    StringaSQL = "Select * FROM eventi WHERE publish_home = true ORDER BY data_evento"
    Set Rs = objConn.Execute(StringaSQL)
    
    Rs.MoveFirst
    If Not Rs.BOF or Rs.EOF Then
    	Do While Not Rs.EOF
    		WriteFileNews.WriteLine("        <item>")
    		WriteFileNews.WriteLine("            <event_date><![CDATA[" & Rs("data_evento") & "]]></event_date>")
    		WriteFileNews.WriteLine("            <title><![CDATA[" & Rs("titolo") & "]]></title>")
    		WriteFileNews.WriteLine("            <link><![CDATA[un_evento.asp?id=" & Rs("ideventi") & "]]></link>")
    		WriteFileNews.WriteLine("        </item>")
    		Rs.movenext
    	loop
    End If
    
    Rs.Close
    Set Rs = Nothing
    objConn.Close
    Set objConn = nothing
    
    WriteFileNews.WriteLine("    </channel>")
    WriteFileNews.WriteLine("</rss>")
    
    WriteFileNews.Close
    Set WriteFileNews = Nothing
    
    Set FSO = Nothing
    Response.redirect("eventi-pubblicati.asp")
    %>
    Quindi non encodo i caratteri scrivendoli nel file XML. Pensi che sia meglio inserirli già encodati?

  6. #6
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Si è meglio per i testi, per il link non serve. Al limite metti escape()
    Server.HtmlEncode(Rs("titolo"))

  7. #7
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125
    Quindi lo faccio diventare:
    codice:
    WriteFileNews.WriteLine("        <item>")
    WriteFileNews.WriteLine("            <event_date><![CDATA[" & Rs("data_evento") & "]]></event_date>")
    WriteFileNews.WriteLine("            <title><![CDATA[" & Server.HtmlEncode(Rs("titolo")) & "]]></title>")
    WriteFileNews.WriteLine("            <link><![CDATA[un_evento.asp?id=" & Rs("ideventi") & "]]></link>")
    WriteFileNews.WriteLine("        </item>")
    e per leggerlo uso:
    codice:
    ASP: strNews_Descr = objNode2.firstChild.nodevalue
    Scusa l'ignoranza ma cosa intendi per: "al limite metti escape()" ?

    Nel nodo <link> secondo te è meglio mettere l'indirizzo completo del sito in modo che leggendo il file news.xml dall'esterno si riesca a prelevare il link assoluto alla news?
    Es.: w w w.pippo.it/un_evento.asp?id=1[/url]

    Grazie mille per la risposta !!!

  8. #8
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Scusa, ma le rss si fanno per farle leggere agli altri. Perchè le leggi tu? Ma sopratutto perchè non usi l'oggetto microsoft per crearle?

    Escape server per codificare i valori nel querystring. Hai presente i caratteri %20usati%20come%20spazi? li crea escape.

  9. #9
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125
    Bhe il discorso del file XML non è nato per le RSS. E' iniziato per fare qualche esperimento e per limitare le connessioni al DB sull'accesso alla HOME page del sito (che legge NEWS ed EVENTI da 2 file XML).
    In realtà nei file news.xml ed eventi.xml ci sono solo EVENTi e NEWS che devono essere visti nella home page.

    Adesso mi piacerebbe rendere disponibile 2 file XML con l'elenco completo delle NEWS e degli EVENTI per farli leggere dall'esterno: per questo ti ho fatto la domanda.

    Per quanto riguarda l'escape: OK

    Per scrivere i file XML ho letto un po' in giro e mi sono aggiustato con il metodo che hai visto sopra. Visto che funziona non ho fatto altre ricerche.
    Non sapevo esistesse 1 oggetto microsoft per creare le RSS ma, dato che me lo consigli, farò una ricerca ed imparerò ad utilizzarlo .

    Grazie ancora, le tue delucidazioni mi sono state molto utili.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.