【问题标题】:xquery to return the element namexquery 返回元素名称
【发布时间】:2016-02-29 22:31:07
【问题描述】:
DECLARE @XML XML
SET @xml = '
<root>
    <a>
        <DATE_OF_BIRTH> 19871224</DATE_OF_BIRTH> 
        <DRIVER> MIKE </DRIVER> 
    </a>
    <a>
        <DATE_OF_BIRTH> 19881124</DATE_OF_BIRTH> 
        <DRIVER> TOM </DRIVER> 
    </a>
    <a>
        <DATE_OF_BIRTH> 19770601</DATE_OF_BIRTH> 
        <DRIVER> DAVID </DRIVER> 
    </a>
</root>'

select x.value('.','varchar(100)')
from @xml.nodes('//a') as T(X)

我想用xquery返回元素名

这样的结果

DATE_OF_BIRTH

司机

我怎样才能做到这一点?

非常感谢。

【问题讨论】:

标签: sql-server xml xquery


【解决方案1】:

如果您尝试以下操作:

select X.query('local-name(.)')
from @xml.nodes('//a/*') as T(X)

它会返回:

DATE_OF_BIRTH
DRIVER
DATE_OF_BIRTH
DRIVER
DATE_OF_BIRTH
DRIVER

【讨论】:

    【解决方案2】:

    使用local-name()(或name(),如果你想包含命名空间),所以应该是

    //a/*/local-name()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多