如何在以下xml文档中获取标题
DECLARE @xVar XML
SET @xVar =
'<reportdata genre="security" publicationdate="2002" ISBN="0-7356-1588-2">
<title>Writing Secure Code</title>
<author>
<first-name>Michael</first-name>
<last-name>Howard</last-name>
</author>
<author>
<first-name>David</first-name>
<last-name>LeBlanc</last-name>
</author>
<price>39.99</price>
</reportdata>'
SELECT [Title]= reportdata.item.value('@title', 'varchar(40)')
FROM @xVar.nodes('/reportdata') AS reportdata(item)
此查询始终返回null,任何想法?
答案 0 :(得分:3)
title
是元素而不是属性。以下作品。
SELECT [Title]= reportdata.item.value('.', 'varchar(40)')
FROM @xVar.nodes('/reportdata/title[1]') AS reportdata(item)
答案 1 :(得分:2)
如果您只想要一个值,则无需在FROM
子句中粉碎XML。
SELECT [Title]= @xVar.value('(/reportdata/title)[1]', 'varchar(40)')