待合并字段中可能出现 <、>、&、Tab、换行等在xml中将被转义的字符,从而生成不符合预期的字符串结果,可使用如下表达式:
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('/', 'varchar(MAX)')
以下为相同执行效果的另几种xpath表达:
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('.', 'varchar(MAX)')
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('node()[1]', 'varchar(MAX)')
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('/node()[1]', 'varchar(MAX)')
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('text()[1]', 'varchar(MAX)')
(SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('/text()[1]', 'varchar(MAX)')
其中最后一种应该是最完整而准确的xpath表达,意即xml文档根部的第一个文本节点。