Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
335
Assunto : SQL Server
Titulo: Caracteres especiais com FOR XML

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Conforme vimos na dica anterior, alguns caracteres especiais precisam da utilização da especificação CDATA para poderem ser inseridos dentro do XML.

Porém o uso do FOR XML AUTO no SQL Server 2000 contorna este problema. Suponha a seguinte tabela, apenas para teste, claro :

Create table teste
(x varchar(50))

e os seguintes inserts :

insert into teste values ('&&&&&')
insert into teste values ('&&&&&')

Veja o resultado do for xml auto (select * from teste for xml auto,elements) :

<teste><x>&amp;&amp;&amp;&amp;&amp;</x></teste>
<teste><x>&amp;&amp;&amp;&amp;&amp;</x></teste>

Claro, característica do sql server gerar o resultado sem root. Mas o fato é que os caracteres especiais foram transformados de forma a que o XML seja válido, o que contorna o problema da exibição de caracteres especiais sem a necessidade do uso do CDATA.

Porém se ainda assim desejarmos gerar a clausula CDATA a partir do SQL Server podemos utilizar o FOR XML Explicit. Veja um exemplo :

select 1 as tag, null as parent, x as [teste!1!!cdata]
from teste for xml explicit

O for xml explicit utiliza 2 colunas especiais, tag para identificar o tagnumber do elemento e o parent para identificar o elemento pai. A seguir entram as colunas de dados, identificando o nome do elemento e a sequencia do campo dentro do elemento.

Ai entra o truque : Ao especificar a informação pode-se utilizar o parâmetro CDATA de forma a gerar a tag CDATA. Veja o resultado desta query :

<teste><![CDATA[&&&&&]]></teste>
<teste><![CDATA[&&&&&]]></teste>



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br