2012-06-12 3 views
3

с помощью Microsoft SQL Server ...Как декодировать & и т. Д., Используя XQuery/SQL?

declare @x xml 
set @x = '<Example>&lt;You &amp; Me&gt;</Example>' 
select cast(@x.query('/Example/text()') as nvarchar(50)) 

В результате "& л, вы & амп; Me & Гт" а не "< Вы & Me >".

Как я могу SQL читать XML таким образом, что '& lt;', '& amp;' и '& gt;' декодируются?

ответ

7

Использовать value() вместо query().

declare @x xml 
set @x = '<Example>&lt;You &amp; Me&gt;</Example>' 
select @x.value('(/Example)[1]', 'nvarchar(50)') 

SQL-Fiddle