如何从SQL中获取此XML中的数据

时间:2012-08-23 16:15:36

标签: xml tsql xpath xml-parsing

在sql查询中,我运行这些命令,无论我尝试什么,我都会继续使用NUll。

DECLARE @x AS XML

SET @x = ' <Data> <Preference>Mail</Preference>   <Comment>Changed Contact Communication Preference due to customer unsubscribed</Comment>  </Data> '


SELECT @x.value('(//Data/@Preference)[0]','varchar(20)') AS Preference

我做错了什么?

1 个答案:

答案 0 :(得分:1)

请改用此XPath:

SELECT @x.value('(//Data/Preference)[1]','varchar(20)') AS Preference

所有XPath阵列都是从1开始 - 而不是从0开始 - 因此您的[0]不会返回任何内容。

其次,<Preference>是一个XML元素 - 而不是属性。您拥有的@Preference正在尝试选择XML 属性