如何将字符串转换为 XML 数据类型,以便可以将数据作为 XML 查询:
例如(感谢为此提供原始 SQL 的“mellamokb the Wise”)
如果 xmlstring 是 XML 类型,则下面的代码可以正常工作(请参阅DEMO)
select id, name
from Data
cross apply (
select Destination.value('data(@Name)', 'varchar(50)') as name
from [xmlstring].nodes('/Holidays/Summer/Regions/Destinations/Destination') D(Destination)
) Destinations(Name)
但是,如果 xmlString 是 varchar 类型,即使我将字符串转换为 XML ( DEMO ),也会出现错误:
select id, name
from Data
cross apply (
select Destination.value('data(@Name)', 'varchar(50)') as name
from CONVERT(xml,[xmlstring]).nodes('/Holidays/Summer/Regions/Destinations/Destination') D(Destination)
) Destinations(Name)