Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229

    Rimuovere tag HTML da una stringa

    Come posso rimuovere con VB tutti i tag HTML presenti in una stringa?
    Ho provato ad effettuare delle ricerche con le RegExp, ma andando ad estrarre le stringhe "<.*>" c'è il rischio che venga rimossa anche parte del testo.
    Inoltre, devo sostituire tutti i simboli che in un documento XML non sarebbero validi (è, à, «, ...) con le relative entità carattere: esiste una funzione che lo faccia automaticamente?

  2. #2

    Re: Rimuovere tag HTML da una stringa

    Originariamente inviato da daneel
    Come posso rimuovere con VB tutti i tag HTML presenti in una stringa?
    Ho provato ad effettuare delle ricerche con le RegExp, ma andando ad estrarre le stringhe "<.*>" c'è il rischio che venga rimossa anche parte del testo.
    Inoltre, devo sostituire tutti i simboli che in un documento XML non sarebbero validi (è, à, «, ...) con le relative entità carattere: esiste una funzione che lo faccia automaticamente?
    Credo tu debba farlo a manina...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    La prima è banale

    codice:
    Function RemoveHtml(ByVal strHtml As String) As String
        Dim intPos As Long, intEnd As Long, strToRemove As String
    
        Do
            intPos = InStr(1, strHtml, "<")
            If intPos > 0 Then
                intEnd = InStr(intPos + 1, strHtml, ">")
                If intEnd > 0 Then
                    strToRemove = Mid$(strHtml, intPos, intEnd - intPos + 1)
                    strHtml = Replace(strHtml, strToRemove, vbNullString)
                Else
                    Exit Do
                End If
            End If
        Loop Until intPos = 0
    
        RemoveHtml = strHtml
    End Function
    La seconda invece te la abbozzo e la completi aggiungendo la gestione di altri caratteri.

    codice:
    Function XMLFormatted(ByVal strXml As String, ByVal strItem As String) As String
        Dim intPos As Long, intEnd As Long, strTemp As String
        Dim strFirstTag As String, strEndTag As String
    
        intPos = InStr(1, strXml, "<" & strItem & ">") + CLng(Len(strItem) + 2)
        If intPos > 0 Then
            intEnd = InStr(intPos, strXml, "</" & strItem & ">")
            strFirstTag = Left$(strXml, intPos - 1)
            strEndTag = Right$(strXml, Len(strXml) - intEnd + 1)
            strTemp = Mid$(strXml, intPos, intEnd - intPos)
            strTemp = CharToXMLCode(strTemp)
            strTemp = strFirstTag & strTemp & strEndTag
        End If
    
        If Len(strTemp) > 0 Then XMLFormatted = strTemp
    End Function
    
    Function CharToXMLCode(ByVal strToConvert As String) As String
        strToConvert = Replace(strToConvert, "&", "&#38;")
        strToConvert = Replace(strToConvert, "<", "&#60;")
        strToConvert = Replace(strToConvert, ">", "&#62;")
        strToConvert = Replace(strToConvert, "'", "&#39;")
        strToConvert = Replace(strToConvert, """", "&#34;")
    
        CharToXMLCode = strToConvert
    End Function
    te le adatti come vuoi.
    Ans.

  4. #4
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Originariamente inviato da ans
    La prima è banale
    codice:
    Function RemoveHtml(ByVal strHtml As String) As String
    ...
    End Function
    La seconda invece te la abbozzo e la completi aggiungendo la gestione di altri caratteri.
    codice:
    Function CharToXMLCode(ByVal strToConvert As String) As String
    ...
    End Function
    te le adatti come vuoi.
    Grazie mille, la prima funzione va bene. Nella seconda devo comunque sostituire uno ad uno i caratteri... può anche andare.
    Grazie ancora.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    uaz sorry ma non ha funzionato il past nel forum... strano mi dispiace... il codice non è corretto...

    strToConvert = Replace(strToConvert, "&", "&")
    strToConvert = Replace(strToConvert, "<", "<")
    strToConvert = Replace(strToConvert, ">", ">")
    strToConvert = Replace(strToConvert, "'", "'")
    strToConvert = Replace(strToConvert, """", """)


    avevo postato per le replace i codici XML da utilizzare al posto dei caratteri che vedi, evidentemente sono stati convertiti in modo automatico e non li vedi... sorry ma ora non so come fare per farli visualizzare... mi sa se non ricordo male che dovrebbe essere & poi # poi ascii del carattere e poi ; .... prova un po'.
    Ans.

  6. #6
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Originariamente inviato da ans
    uaz sorry ma non ha funzionato il past nel forum... strano mi dispiace... il codice non è corretto...

    strToConvert = Replace(strToConvert, "&", "&")
    strToConvert = Replace(strToConvert, "<", "<")
    strToConvert = Replace(strToConvert, ">", ">")
    strToConvert = Replace(strToConvert, "'", "'")
    strToConvert = Replace(strToConvert, """", """)


    avevo postato per le replace i codici XML da utilizzare al posto dei caratteri che vedi, evidentemente sono stati convertiti in modo automatico e non li vedi... sorry ma ora non so come fare per farli visualizzare... mi sa se non ricordo male che dovrebbe essere & poi # poi ascii del carattere e poi ; .... prova un po'.
    Non importa, ans, li avevo già sostituiti con le entità carattere: è evidente che, ad esempio, "<" deve essere sostituito con "&#38;#60;".

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.