【问题标题】:T-Sql xml queryT-Sql xml查询
【发布时间】:2012-01-18 20:05:35
【问题描述】:

如何在下面的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 ,有什么想法吗?

【问题讨论】:

    标签: xml tsql


    【解决方案1】:

    title 是一个元素而不是一个属性。以下工作。

    SELECT [Title]= reportdata.item.value('.', 'varchar(40)')
    FROM   @xVar.nodes('/reportdata/title[1]') AS reportdata(item)  
    

    【讨论】:

      【解决方案2】:

      如果您只需要一个值,则无需在 FROM 子句中分解 XML。

      SELECT [Title]= @xVar.value('(/reportdata/title)[1]', 'varchar(40)')
      

      【讨论】:

        猜你喜欢
        • 2021-12-05
        • 2013-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 2022-01-15
        • 2017-02-22
        相关资源
        最近更新 更多