Función que nos retorna un texto html sin los tags, Removedor de Tags HTML ( HTML Tag Remover )

0
295

Desgargar Ejemplo HTML_TAG_Remover.zip

El removedor de Tags HTML es una herramienta muy util no solo para su funcionalidad inicial, sino también, con algunas modificaciones nos podría servir para muchos otros propósitos.

En este ejemplo vamos a recorrer el texto buscando los Tags HTML, y una vez que los tengamos ubicados, posición en el texto, vamos a ir eliminando uno a uno.

 Public Shared Function RetornaTextoSinHTML( _
                        ByVal valor As String, _
                        Optional ByVal longitud As Integer = -1, _
                        Optional ByVal MostrarImagen As Boolean = False, _
                        Optional ByVal SoloPrimerParrafo As Boolean = False) As String

        ‘Recibe un texto con tags html y retorna solo el contenido sin tags         
        ‘valor: Contiene el texto original con los tags html
        ‘longitud: Si deseamos que el texto que nos retorne
        ‘          el archivo contenga una logitud específica
        ‘MostrarImagen: Que en el texto que nos retorne tenga
        ‘               eltag de una Imagen, la primera y solo una.
        ‘SoloPrimerParrafo: Que nos retorne solo el primer parrafo

        Try
            Dim nPos1 As Integer
            Dim nPos2 As Integer
            Dim nTagImagen As String = ""
            Dim strText As String = ""
            Dim Tag As String           

            ‘Obtiene la posicion del caracter <
            nPos1 = InStr(valor, "<")            

            Do While nPos1 > 0                

                ‘Obtiene la posicion del caracter >
                nPos2 = InStr(nPos1 + 1, valor, ">")                

                If nPos2 > 0 Then                    
                    strText = valor.Substring(0, nPos1 – 1)                    

                    ‘Obtiene los primeros caracteres del TAG html
                    ‘para hacer algunas comparaciones
                    Tag = valor.Substring(nPos1 – 1, 4)                    

                    ‘Que se retorne solo el primer parrafo
                    If Tag.Trim.ToUpper = "<BR>" And SoloPrimerParrafo Then
                        Exit Do
                    End If                    

                    ‘Que la imagen en el primer parrafo
                    ‘se muestre en el retorno
                    If Tag.Trim.ToUpper = "<IMG" _
                        And MostrarImagen And nTagImagen.Trim.Length = 0 Then

                        nTagImagen += valor.Substring(nPos1 – 1, nPos2)
                    End If

                    strText += valor.Substring(nPos2, valor.Length – nPos2 – 1)

                Else
                    Exit Do
                End If

                valor = strText
                nPos1 = InStr(strText, "<")
            Loop

            If strText.Length = 0 Then strText = valor

            ‘Si se desea que el string de retorno
            ‘tenga una longitud especifica
            If strText.Length >= longitud And longitud > 0 Then
                Return nTagImagen & strText.Substring(0, longitud – 1)
            Else
                Return nTagImagen & strText
            End If

        Catch ex As Exception
            Throw ex
        End Try
    End Function

Desgargar Ejemplo HTML_TAG_Remover.zip

Lo que tendríamos como resultado al utilizar esta función sería:

Texto con HTML
<img src="http://www.dotnetcr.com/IMG/apple-macs-intel.jpg" align="left"><b>Apple</a> anunció en su feria anual <b>Macworld<>, que se celebró en enero en San Francisco, la salida al mercado de los primeros ordenadores de la compañía que utilizan procesadores de <b>Intel</b>, un cambio anticipado en la política de la empresa.<br>

Texto sin HTML (resultado)
Apple anunció en su feria anual Macworld, que se celebró en enero en San Francisco, la salida al mercado de los primeros ordenadores de la compañía que utilizan procesadores de Intel, un cambio anticipado en la política de la empresa.

Desgargar Ejemplo HTML_TAG_Remover.zip

Dejar respuesta

Please enter your comment!
Please enter your name here