【问题标题】:Get the attribute value of the first element?获取第一个元素的属性值?
【发布时间】:2017-09-07 23:14:12
【问题描述】:

以下代码尝试获取 SQL Server 中第一个节点y 的属性a

declare @x xml = '<x><y a="1" /><y a="2" /></x>'

select @x.query('/x/y[1]/@a')

select @x.query('(/x/y/@a)[1]')

但是,它得到了错误

消息 6307,第 16 级,状态 1,第 5 行

XML 格式正确检查:属性不能出现在元素声明之外。重写您的 XQuery,使其返回格式正确的 XML。

【问题讨论】:

    标签: sql-server xml xpath xquery


    【解决方案1】:

    如果我明白了

    示例

    declare @x xml = '<x><y a="1" /><y a="2" /></x>'
    select @x.value('x[1]/y[1]/@a','varchar(max)')
    

    退货

    1
    

    【讨论】:

      【解决方案2】:

      这行得通

      select @x.query('data(/x/y[1]/@a)')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-06
        • 2020-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2011-03-04
        • 2014-08-31
        相关资源
        最近更新 更多