Como converter html ao texto em sql

Converter HTML ao texto em SQL

Converter HTML para texto em SQL pode ser feito de forma eficiente com uma função definida pelo usuário. Uma função definida pelo usuário aceita parâmetros, realiza uma ação, como a análise de HTML, e retorna o resultado como um valor. A função pode ser executado a partir de qualquer instrução SQL ou linguagem de programação externa.

Coisas que você precisa

  • Conhecimento intermediário de T-SQL
  • as permissões adequadas para criar um objeto de banco de dados função
  • Ligue para o seu banco de dados e criar um novo arquivo SQL.

  • Digite o seguinte SQL:

    CREATE FUNCTION [dbo]. [CleanHTML]

    (

    @DirtyText Varchar (MAX)

    )

    RETORNOS varchar (MAX)

    COMO

    INÍCIO

    DECLARE @BeginPos int

    DECLARE @EndPos int

    DECLARE @Len int

    -- Substitua a entidade HTML & com o `&"Caráter (isso precisa ser feito primeiro, como

    -- `&`Pode ser dupla codificado como`&`)

    @BeginPos SET = CHARINDEX ( `&`, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length `&`)

    @BeginPos SET = CHARINDEX ( `&`, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Substitua a entidade HTML lt; com o "lt; ` personagem

    @BeginPos SET = charIndex ( `lt;`, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, `lt;`)

    @BeginPos SET = charIndex ( `lt;`, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Substitua a entidade HTML gt; com o `gt;` personagem

    @BeginPos SET = charIndex ( `gt;`, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, `gt;`)

    @BeginPos SET = charIndex ( `gt;`, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Substitua a entidade HTML & com o `&` personagem

    @BeginPos SET = CHARINDEX ( `&`, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length `&`)

    @BeginPos SET = CHARINDEX ( `&`, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Substitua a entidade HTML com o caráter ``



    @BeginPos SET = CHARINDEX ( ``, @DirtyText)

    SET @EndPos = @BeginPos + 5

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, ``)

    @BeginPos SET = CHARINDEX ( ``, @DirtyText)

    SET @EndPos = @BeginPos + 5

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Substitua todas as tags com uma nova linha

    @BeginPos SET = CHARINDEX ( ``, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, CHAR (13) + CHAR (10))

    @BeginPos SET = CHARINDEX ( ``, @DirtyText)

    SET @EndPos = @BeginPos + 3

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- substituir qualquer
    tags com uma nova linha

    @BeginPos SET = CHARINDEX ( `
    `, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, `CHAR (13) + CHAR (10)`)

    @BeginPos SET = CHARINDEX ( `
    `, @DirtyText)

    SET @EndPos = @BeginPos + 4

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- substituir qualquer
    tags com uma nova linha

    @BeginPos SET = CHARINDEX ( `
    `, @DirtyText)

    SET @EndPos = @BeginPos + 5

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, `CHAR (13) + CHAR (10)`)

    @BeginPos SET = CHARINDEX ( `
    `, @DirtyText)

    SET @EndPos = @BeginPos + 5

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    -- Remova qualquer coisa entre Tag

    @BeginPos SET = charIndex ( `lt;`, @DirtyText)

    @EndPos SET = charIndex ( `gt;`, @DirtyText, charIndex ( `lt;`, @DirtyText))

    SET @ Len = (@EndPos - @BeginPos) + 1

    While (@BeginPos gt; 0 E @EndPos gt; 0 E @Lengt; 0) BEGIN

    SET @DirtyText = STUFF (@DirtyText, @BeginPos, @Length, ``)

    @BeginPos SET = charIndex ( `lt;`, @DirtyText)

    @EndPos SET = charIndex ( `gt;`, @DirtyText, charIndex ( `lt;`, @DirtyText))

    SET @ Len = (@EndPos - @BeginPos) + 1

    FIM

    RETURN LTRIM (RTRIM (@DirtyText))

    FIM

  • Compilar a função SQL.

  • Executar a função, e verificar que ele retorna os resultados desejados. Por exemplo:

    Seleccione a partir dbo.CleanHTML ( `teste`);

De esta maneira? Compartilhar em redes sociais:

LiveInternet