none
TAG HTML in coluna SQL Server remover div RRS feed

  • Pergunta

  • Olá pessoal.

    Preciso de uma ajuda.

    Estou a tentar converter uma coluna HTML Div

    Modo padrão: [Descricao]

    Modo convertido: ltrim(cast((cast(replace(cast([Descricao] as nvarchar(4000)),'>','> ') as xml)).query(('string(/)'))as nvarchar(4000))),

    No modo padrão a query funciona e exibe os dados porém com as tags.

    Ao aplicar o modo convertido recebo a seguinte mensagem:

    Msg 9436, Level 16, State 1, Line 1
    XML parsing: line 1, character 327, end tag does not match start tag

    Necessito remover essas tags html e manter apenas o texto.

    Podem dar um apoio na solução.

    Obrigado.


    Obrigado por contactar o fórum Microsoft Technet!


    terça-feira, 9 de janeiro de 2018 10:03

Respostas

  • Bom dia , seu print tem o conteúdo 

    <div Class="ExternalClass">Aqui deve ter algo </div>

    no caso que vc quer e apenas selecionar o conteúdo dentro da div , no exemplo ficaria apenas 

    "Aqui deve ter algo"  ??

     é isso 

    Se for isso , de uma olhada na seguinte implementação

    
    DECLARE  @Xml XML ;
    
    SET @Xml = '<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 1</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 2</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 3</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 4</div>';
    
    
    SELECT div.value('.','varchar(100)') AS [Conteudos] FROM
     @Xml.nodes('/div') AS Divs(div)


    Wesley Neves - Brasilia-DF     

    https://wesleyneves.wordpress.com/

    SELECT Tab.[that's me:]

    FROM

    (

        VALUES

            ('Wesley Neves'),

            ('Analista.NET'),

            ('Pós Graduando em Banco de Dados com ênfase em BI'),

            ('MTA -SQL Server'),

            ('MTA -Web Developed')

    ) AS Tab ("that's me:");


    "Se a resposta for útil ou ajudar ,não esqueça de marcar"



    quinta-feira, 11 de janeiro de 2018 10:06

Todas as Respostas

  • Hezequias,

    Você deve tentar trabalhar com o format XHTML e não HTML!

    Você esta fechando todas as tags? Talvez seja necessário informar o formato ou padrão do seu XML.

    Se você estiver utilizando o SQL Server 2012 ou superior inclua no seu script esta linha:

    @xml =N'"<?xml version=\"1.0\" encoding=\"UTF-16\"?>"'

    Se for 2008 R2 ou inferior inclua:

    @xml =N'"<?xml version="1.0" encoding="UTF-16"?>"'


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    terça-feira, 9 de janeiro de 2018 17:53
  • Olá Junior.

    Obrigado por sua resposta.

    Possuímos um SQL 2014.

    Não consegui entender em que ponto da linha do script esse item é adicionado.

    Pode nos fornecer um exemplo?

    Tipo: 

    ltrim(cast((cast(replace(cast([Descricao] as nvarchar(4000)),@xml =N'"<?xml version=\"1.0\" encoding=\"UTF-16\"?) as xml)).query(('string(/)'))as nvarchar(4000))),


    Obrigado por contactar o fórum Microsoft Technet!

    quarta-feira, 10 de janeiro de 2018 15:17
  • Bom dia , seu print tem o conteúdo 

    <div Class="ExternalClass">Aqui deve ter algo </div>

    no caso que vc quer e apenas selecionar o conteúdo dentro da div , no exemplo ficaria apenas 

    "Aqui deve ter algo"  ??

     é isso 

    Se for isso , de uma olhada na seguinte implementação

    
    DECLARE  @Xml XML ;
    
    SET @Xml = '<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 1</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 2</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 3</div>
    		<div class="ExternalClass274A96B0-F1B4-44C4-9956-D5330361F716">Linha 4</div>';
    
    
    SELECT div.value('.','varchar(100)') AS [Conteudos] FROM
     @Xml.nodes('/div') AS Divs(div)


    Wesley Neves - Brasilia-DF     

    https://wesleyneves.wordpress.com/

    SELECT Tab.[that's me:]

    FROM

    (

        VALUES

            ('Wesley Neves'),

            ('Analista.NET'),

            ('Pós Graduando em Banco de Dados com ênfase em BI'),

            ('MTA -SQL Server'),

            ('MTA -Web Developed')

    ) AS Tab ("that's me:");


    "Se a resposta for útil ou ajudar ,não esqueça de marcar"



    quinta-feira, 11 de janeiro de 2018 10:06
  • Hezequias,

    No começo do seu código, se possível logo após o comando Declare que você esta utilizando para declarar o código da variável XML.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 11 de janeiro de 2018 21:33