sexta-feira, 12 de novembro de 2010

Removendo TAGS HTML de uma STRING

Acho que algumas pessoas enxergam o DBA como o “olho que tudo vê“ do SQL, e volta e meia recebo perguntas nada usuais que geralmente começam com “só uma perguntinha, você já fez isso aqui antes...?...”. Hoje me perguntaram se eu já precisei tirar tags HTML de uma string, usando T-SQL. Realmente nunca precisei fazer algo assim e meu instinto inicial de ex-programador me levou a pensar em uma função que faria um loop, identificando os sinais de maior e menor e limpando-os da string. Meu segundo instinto foi “alguém já fez isso antes”.

DBA pronto para tunar um banco de dados
 Ser DBA não necessariamente implica em ser uma força onipresente ou um BUDA tecnológico que tem todas as respostas, mas definitivamente ser DBA envolve saber pesquisar e encontrar as respostas. Depois de uma pesquisa no www.google.com por “remove HTML tags from a string” +”sql server”, encontrei a função abaixo no blog do Pinal Dave, o http://blog.sqlauthority.com. Link para o post original.

CREATE FUNCTION [dbo].[Udf_striphtml] (@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
  BEGIN
      DECLARE @Start INT
      DECLARE @End INT
      DECLARE @Length INT

      SET @Start = Charindex('<', @HTMLText)
      SET @End = Charindex('>', @HTMLText, Charindex('<', @HTMLText))
      SET @Length = ( @End - @Start ) + 1

      WHILE @Start > 0
            AND @End > 0
            AND @Length > 0
        BEGIN
            SET @HTMLText = Stuff(@HTMLText, @Start, @Length, '')
            SET @Start = Charindex('<', @HTMLText)
            SET @End = Charindex('>', @HTMLText, Charindex('<', @HTMLText))
            SET @Length = ( @End - @Start ) + 1
        END

      RETURN Ltrim(Rtrim(@HTMLText))
  END

GO

Função em ação


Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!